2016-01-15 1 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 ДАННЫЕ и не отдых.

Я понятия не имею, почему. Я могу решить часть суммы подсчета. Просто не получается, почему я только получаю доступ к первым двум данным, а остальная часть JSON игнорируется.

+0

Donno давшего downvote :(и почему .. Я новичок поэтому задал этот вопрос я буду получать запрещено излишне:./ Спасибо большое histrio, Милли, Stefano , а также для того, чтобы решить другую программу отдыха :) – 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 разобранный на Сыроватского как

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

Длина этого должна быть 2, потому что это всего лишь два ключа в этом dict. Правильный способ сделать это - получить комментарии и подсчитать их.

Например:

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

спасибо вам большое :) – Tuhin

 Смежные вопросы

  • Нет связанных вопросов^_^