我有一个JSON字符串,我想从中提取对象。问题是simplejson.loads引发了一些错误。你能告诉我如何提取物体吗?
u'[u\'{"opt_id":2949,"answer":"true"}\', u\'{"opt_id":2950,"answer":"false"}\', u\'{"opt_id":2951,"answer":"false"}\']'
答案 0 :(得分:1)
您没有JSON字符串;你有一个字符串代表一个包含JSON字符串的Python列表对象。
以下作品:
import json
import ast
for json_string in ast.literal_eval(inputstring):
print json.loads(json_string)
演示:
>>> import json
>>> import ast
>>> inputstring = u'[u\'{"opt_id":2949,"answer":"true"}\', u\'{"opt_id":2950,"answer":"false"}\', u\'{"opt_id":2951,"answer":"false"}\']'
>>> for json_string in ast.literal_eval(inputstring):
... print json.loads(json_string)
...
{u'answer': u'true', u'opt_id': 2949}
{u'answer': u'false', u'opt_id': 2950}
{u'answer': u'false', u'opt_id': 2951}
您可能需要找出为什么您获得了该字符串而不是正确的JSON值,如下所示:
'[{"answer": "true", "opt_id": 2949}, {"answer": "false", "opt_id": 2950}, {"answer": "false", "opt_id": 2951}]'
代替。