2 回答
TA贡献1798条经验 获得超3个赞
首先,当提出问题时,请花时间整理它,以便它代表您实际运行的内容并删除任何注释掉的代码。
在您的情况下,问题可以简化为:
f = urllib.request.urlopen(url)
content = f.read()
data = json.loads((content.decode('utf-8')))
#here is the problem, tried several ways to access data
for i in data[data]:
print(i['asia'])
我们实际上可以看到问题所在。data是一个字典;在该 dict 中是一个 key 'data',它本身就是一个 dict 。遍历 dict 会给你keys。如果您只想访问“亚洲”数据,那么就这样做,根本不需要循环:
print(data['data']['asia'])
如果您确实想遍历每个项目,请使用items():
for region, matches in data['data'].items():
print(region)
print(matches)
TA贡献1856条经验 获得超5个赞
下载数据太大。6.2M 更改 jupyter notebook 配置文件。(jupyter_notebook_config.py) 编辑 ~/.jupyter/jupyter_notebook_config.py
如果找不到文件,$ jupyter notebook --generate-config
打开文件并编辑。
c.NotebookApp.iopub_data_rate_limit = 10000000
并重新启动 $ jupyter 笔记本。
url = "http://api.isportsapi.com/sport/free/football/odds/main?api_key=" + api_key
# Call iSport Api to get data in json format
f = urllib.request.urlopen(url)
content = f.read()
#print(content.decode('utf-8'))
data = json.loads((content.decode('utf-8')))
print( data['data']['asian'])
# there is no 'asia' field in that content.
输出是
[{'matchId': '4196461', 'companyId': '1', 'initialHandicap': '-0.25', 'initialHome': '0.78', 'initialAway': '1.02', 'instantHandicap': '-0.25', 'instantHome': '0.78', 'instantAway': '1.02', 'modifyTime': 1567434821, 'close': False, 'inPlay': False}, {'matchId': '4196461', 'companyId': '3', 'initialHandicap': '-0.25', 'initialHome': '0.91', 'initialAway': '0.91', 'instantHandicap': '-0.25', 'instantHome': '0.81', 'instantAway': '1.09', 'modifyTime': 1567709243, 'close': False, 'inPlay': True}, {'matchId': '4196461', 'companyId': '8', 'initialHandicap': '-0.25', 'initialHome': '0.85', 'initialAway': '1.00', 'instantHandicap': '-0.25', 'instantHome': '0.80',
...
添加回答
举报