2014-03-30 71 views
0

我的工作在Twitter的JSON對象,你可以在這個link找到一個例子:解析複雜的JSON動態

我使用一個類似的鏈接代碼,從中提取JSON文件信息。然而,就我而言,我試圖解析動態的twitter數據,有些實體有多個條目或沒有,在這種情況下,解析變得更加棘手,並涉及大量的字符串操作。

例如,關鍵'座標'出現在兩到三個區域中,['座標'] ['座標']可能有一個值或不具有一個值。

類似地,在井號標籤中,可能沒有標籤或只有一個井號標籤或多個條目。如果我有多個哈希標籤,則會以列表形式存儲,並使用嵌套參數(如索引和文本)。

例如,[{u'indices': [81, 91], u'text': u'NYFLC2014'}, {u'indices': [92, 102], u'text': u'NYFLC2013'}]

我不知道他們提前。

這些數據是動態發佈的,需要以xmls的形式存儲,然後傳給Apache Solr進行索引。有沒有一種有效的解析方法來做這種活動?

我使用python2.7,

+0

你不應該做任何其他比'json.loads(line)' – jfs

回答

-2

您可以使用ast.literal_eval直接解析JSON數據到Python對象:

import ast 
datajson = """[ {u'indices': [81, 91], u'text': u'NYFLC2014'}, 
       {u'indices': [92, 102], u'text': u'NYFLC2013'}]""" 
data = ast.literal_eval(data) 

輸出:

data[0]['text'] 
Out[34]: u'NYFLC2014' 
+2

不,你不能。你發佈的不是JSON。 JSON的一個子集是有效的Python語法,但不是全部。 (我猜OP從已解析的代碼發佈了代碼片段)。 – Hyperboreus