2016-01-15 32 views
0

我有一個Dr.Chuck的程序來打印這些數據的總數。問題是。的JSON的計數表示爲「2」時有許多..從Python中的字典中提取數據

import json 
import urllib 

url="http://python-data.dr-chuck.net/comments_42.json" 
uh = urllib.urlopen(url) 
data = uh.read() 
print 'Retrieved',len(data),'characters' 
print data 

info = json.loads(data) 
print 'User count:', len(info) 

此行print 'User count:', len (info)被表示爲2的輸出。當存在大量的數據,因此我只能訪問2個DATAS和不其餘的部分。

我不知道爲什麼。我可以解決計數和的部分。只是沒有得到爲什麼我只能訪問前兩個數據,剩下的JSON被忽略。

+0

唐諾是誰給了downvote :(爲什麼...我因此新手問這個問題,我會得到不必要的禁止:/ 非常感謝histrio,米莉,斯特凡諾,另外stoffen也用於解決其他程序:) – Tuhin

+0

出於好奇,你爲什麼要改變接受的答案? –

回答

1

json有兩個頂級屬性:註釋和註釋。這就是爲什麼你得到的2

的長度,這可能會給你想要的東西:

len(info["comments"]) 
1

要計算評論數:

print 'User count:', len(info["comments"]) 

要打印的總「計數「:

count = 0 
for comment in info["comments"]: 
    count += comment["count"] 
print 'Total count:', count 
+0

謝謝stoffen :) – Tuhin

0

Json由註釋和註釋組成。裏面的評論還有另一個對象數組。 如果你想訪問該數組你有,如果你想要一個數組的長度使用此info['comments'],然後,當你這樣做,你可以使用len(info['comments'])

+0

感謝Stefano :)我是一個Python新手..感謝您的幫助 – Tuhin

1

所以,你的JSON解析與dict像

{"note":"bla", "comments":[...]} 

這個長度應該是2,因爲這個字典中只有兩個鍵。正確的方式來做你的事情是得到評論本身並數它們。

例如:

len(data.get('comments',[])) 
+0

非常感謝你:) – Tuhin