2014-01-19 38 views
-3

我有一個JSON字符串,我想從中提取對象。問題是simplejson.loads拋出一些錯誤。你能告訴我如何提取物體?如何從JSON字符串中提取對象?

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

回答

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

改爲。

+0

非常感謝。很多downvotes在我的問題上,但我認爲這是非常嚴格的社區:3 –

+1

您沒有包含錯誤消息或有關對象來自何處的詳細信息。我沒有對你的問題投票,但這對你的案子有幫助。 –