Subscribe

Categories

Checkio.ORG

Subscribe to Posts

Email:

  • 13Oct

    Бомбезное название придумал!

    Проблема. У меня в таблице в 2х полях лежить жсон. А в ответ на запрос пользователю я должен вернуть другой дсон, некоторыми ключами которого будут жсоны из наших полей.

    Решение в лоп – загрузится с этих полей данные и использовать их в формировании жсона. Но получается дурная работа

    1. return json.dumps({
    2.     'user_id':request.user.id
    3.     'user_data':request.user.data(),
    4.     'info_1':json.loads(model_obj.info1),
    5.     'info_2':json.loads(model_obj.info2)
    6. })

    тут получается мы гоняем данные из жсона и обратно в холостую. Я тут наклепал небольшой модулик с использованием json чтоб этого не делать

    1. import json
    2. loads = json.loads
    3.  
    4. class JSONotEncode(object):
    5.     def __init__(self,data):
    6.         self.str = data
    7.  
    8. def simple(data):
    9.     return JSONotEncode(data)
    10.  
    11. class JSONEncoderSimple(json.JSONEncoder):
    12.     def _iterencode(self,obj,*args,**kwargs):
    13.         if isinstance(obj, JSONotEncode):
    14.             return obj.str
    15.         return json.JSONEncoder._iterencode(self,obj,*args,**kwargs)
    16.  
    17. def dumps(data):
    18.     return json.dumps(data,cls=JSONEncoderSimple)
    19.  
    20. def loads(data):
    21.     return json.loads(data)
    22.  
    23. if __name__ == '__main__':
    24.     print dumps({'a':1,'b':'sdr','c':simple('{"v":1}')})

    Как видите, теперь данные, которые и так JSON просто оборачиваем в функцию simple и холостого хода не происходит.

    Rating 3.00 out of 5
    [?]

    Tags: ,

   

Recent Posts

Recent Comments

  • Почему-то признаки такой "застенчивости" в рунете преобладаю...
  • >и пишеш стать>пишешОбманчивая самоуверенность...
  • Установщик макоси не видит жёсткий диск :(...
  • Когда будет 2я часть статьи? Хотелось бы почитать!...
  • Голоса пользователей. Питон красивый язык, а красоту может о...