JSON TypeError:列表索引必须是整数,而不是str

时间:2016-09-13 16:35:52

标签: python json

我想从JSON中提取一些数据,但我不知道发生了什么。它响应" TypeError:列表索引必须是整数,而不是str"。 这是我的代码,谢谢:

import urllib
import json
url = 'http://python-data.dr-chuck.net/comments_304658.json'
data = urllib.urlopen(url).read()
info = json.loads(data)
#print json.dumps(info,indent=4)
lst = list()
for item in info:
    count = item['comments']['count']
    count = int(count)
    lst.append(count)
print sum(lst)

1 个答案:

答案 0 :(得分:1)

您似乎对返回数据的结构感到困惑。您的代码假定结构是两级字典的列表。如果是这种情况,那么您可以找到像这样的个人count

info[7]['comments']['count']

它实际上是一本字典,其中一项是字典列表。要查找单个项目,表达式如下:

info['comments'][7]['count']

因此,如果我们想迭代列表,我们将迭代info['comments']

试试这个:

import urllib
import json
url = 'http://python-data.dr-chuck.net/comments_304658.json'
data = urllib.urlopen(url).read()
info = json.loads(data)
#print json.dumps(info,indent=4)
lst = list()
for item in info['comments']:
    count = item['count']
    count = int(count)
    lst.append(count)
print sum(lst)