如何从json字符串中提取对象?

时间:2014-01-19 00:18:24

标签: python json

我有一个JSON字符串,我想从中提取对象。问题是simplejson.loads引发了一些错误。你能告诉我如何提取物体吗?

u'[u\'{"opt_id":2949,"answer":"true"}\', u\'{"opt_id":2950,"answer":"false"}\', u\'{"opt_id":2951,"answer":"false"}\']'

1 个答案:

答案 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}]'

代替。