Бомбезное название придумал!
Проблема. У меня в таблице в 2х полях лежить жсон. А в ответ на запрос пользователю я должен вернуть другой дсон, некоторыми ключами которого будут жсоны из наших полей.
Решение в лоп – загрузится с этих полей данные и использовать их в формировании жсона. Но получается дурная работа
-
return json.dumps({
-
'user_id':request.user.id
-
'user_data':request.user.data(),
-
'info_1':json.loads(model_obj.info1),
-
'info_2':json.loads(model_obj.info2)
-
})
тут получается мы гоняем данные из жсона и обратно в холостую. Я тут наклепал небольшой модулик с использованием json чтоб этого не делать
-
import json
-
loads = json.loads
-
-
class JSONotEncode(object):
-
def __init__(self,data):
-
self.str = data
-
-
def simple(data):
-
return JSONotEncode(data)
-
-
class JSONEncoderSimple(json.JSONEncoder):
-
def _iterencode(self,obj,*args,**kwargs):
-
if isinstance(obj, JSONotEncode):
-
return obj.str
-
return json.JSONEncoder._iterencode(self,obj,*args,**kwargs)
-
-
def dumps(data):
-
return json.dumps(data,cls=JSONEncoderSimple)
-
-
def loads(data):
-
return json.loads(data)
-
-
if __name__ == '__main__':
-
print dumps({'a':1,'b':'sdr','c':simple('{"v":1}')})
Как видите, теперь данные, которые и так JSON просто оборачиваем в функцию simple и холостого хода не происходит.
