【发布时间】:2023-03-16 19:59:01
【问题描述】:
好的..我实际上已经非常努力地自己解决了这个问题,但我似乎无法弄清楚。
我正在尝试访问一个 json 文件,并打印出一些我想要的东西。
我要访问的网址是这样的: https://www.reddit.com/user/clockwork8.json
所以这就是交易
我现在有:
import urllib, json, unicodedata
username1 = raw_input('Username: ')
url1 = "https://www.reddit.com/user/clockwork8"
response = urllib.urlopen(url1)
data = json.loads(response.read())
在代码的顶部,我尝试了以下两个选项:
for number in data["data"]["children"]:
for fordata in data["data"]["children"][number]:
if fordata == "data":
for key in data["data"]["children"][post][fordata]:
if key == "score":
print data["data"]["children"][post]["data"][key].encode('ascii')
if key == "link_url":
print data["data"]["children"][post]["data"][key].encode('ascii')
这给了我这个错误:
for fordata in data["data"]["children"][number]:
TypeError: list indices must be integers, not dict
所以我尝试了这个:
for a in range(len(data['data']['children'])):
print data['data']['children'][a]['data']['score'].encode('ascii')
现在它给了我这个错误:
for a in range(len(data['data']['children'])):
KeyError: 'data'
知道问题是什么吗..?
【问题讨论】:
-
您想要
data中的哪些对象?使用你的代码我得到25结果 -
也许你想要
print [d['data']['score'] for d in data['data']['children']]?给出 25scores: [3, 1, 2, 1, 0, 2, 1, 0, -3, 9, 1, 3, 2, 2, 4, 2, 1, 2, 16, -1, 58 , 3, 1, 0, -18]