我有一个包含保存为字典的值的表。
FIELD_NAME:extra_data
值:
{"code": null, "user_id": "103713616419757182414", "access_token": "ya29.IwBloLKFALsddhsAAADlliOoDeE-PD_--yz1i_BZvujw8ixGPh4zH-teMNgkIA", "expires": 3599}
我需要从字段" extra_data"中检索user_id值。只是没有下面的词典。
event_list = Event.objects.filter(season_id=season_id, event_status_id=2).value('extra_data')
答案 0 :(得分:0)
如果您在代码中将字典存储为文本,则可以使用eval
将其轻松转换为python字典 - 虽然我不知道您为什么要这样做,因为它会打开各种各样的字典潜在的恶意代码注入。
event_list = eval(Event.objects.filter(season_id=season_id, event_status_id=2).value('extra_data'))
user_id = event_list['user_id']
print user_id
会给:
"103713616419757182414"
修改强>
在更深入的检查中,这不是Python字典,您可以导入JSON库来导入它,或者声明null
是这样的:
null = None
event_list = eval(Event.objects.filter(season_id=season_id, event_status_id=2).value('extra_data'))
user_id = event_list['user_id']
无论哪种方式,在django文本域中存储任何结构化数据的想法都充满了危险,这些危险将会再次困扰你。 最佳解决方案是重新考虑您的数据结构。
答案 1 :(得分:-1)
这种方法对我有用。但是,这适用于符合json标准的字符串
import json
json_obj = json.loads(event_list)
dict1 = dict(json_obj)
print dict1['user_id']