Я пишу программу на Python, чтобы запросить URL-адрес, прочитать данные JSON с этого URL-адреса, используя urllib, а затем проанализировать и извлечь количество комментариев из данных JSON, вычислить сумму номеров в файле и введите сумму ниже. Вот мой код:TypeError: строковые индексы должны быть целыми числами для JSON
import urllib
import json
total = 0
url = open("comments_42.json")
print 'Retrieving', url
#uh = urllib.urlopen(url)
data = url.read()
print 'Retrieved',len(data),'characters'
#print data
info = json.loads(data)
print info
print 'User count:', len(info)
for item in info:
print item['count']
total = total + item['count']
print total
Ошибка я получаю это:
TypeError: string indices must be integers" for "print item['count']
Почему они должны быть целыми числами? Мой инструктор по Курсере сделал аналогичную вещь. Любой совет?
JSON файл имеет такую структуру:
{
comments: [
{
name: "Matthias"
count: 97
},
{
name: "Geomer"
count: 97
}
...
]
}
Аналогично, не то же самое. Скорее всего, это словарь, где ключ может быть любого (хешируемого) типа. – Reti43
Кажется, что 'item' является' string', а не 'dict'. – AKS
все остальное равное, а не плохая идея, чтобы узнать, действительно ли ваш json действительно json. http://jsonlint.com/ говорит, что это не так. –