我正在尝试使用请求访问格式为JSON的文本的URL。在下面的代码中,一切正常,但我希望它是一个字典,但我请求的响应类型是:'class method'(我第一次打印了错误对象的类型)。如何将信息作为字典?
import requests
import json
r=requests.get('https://s3-us-west-1.amazonaws.com/riot-api/seed_data/matches1.json')
match_histories = r.json()
print(type(match_histories))
代码永远不会超越
match_histories = r.json()
它只是说它的运行(它没有冻结)。
但是,如果我下载文件并尝试它,它可以工作(我希望它直接从网站下载)
with open('matches1', 'r') as json_file:
match_histories = json.load(json_file)
match_histories['matches']
产生我所希望的东西。
我读到了有关在JSON here上使用请求的信息。
请注意,文件非常大,并且字体的格式适当。
我要加载的文件可以是downloaded,但结构基本上是:
{
"matches": [
{
"matchId": 1778839570,
"region": "NA",
"platformId": "NA1",
"matchMode": "CLASSIC",
"matchType": "MATCHED_GAME",
"matchCreation": 1427867835805,
"matchDuration": 3424,
"queueType": "RANKED_SOLO_5x5",
"mapId": 11,
"season": "SEASON2015",
"matchVersion": "5.6.0.194",
"participants": [
// more dictionaries
],
"participantIdentities": [
// more dictionaries
],
"teams": [
// more dictionaries
],
"timeline": {
"frames": [
// many frame dictionaries
],
"frameInterval": 60000
}
},
// more dictionaries
]
}
答案可能很简单。我很抱歉,我是Python /编程的新手。
如何将URL中的信息保存为字典?
它有效,永远。为什么步骤
match_histories=r.json()
需要比
更长的时间match_histories =json.load(json_file)
答案 0 :(得分:2)
您需要调用响应对象的方法.json()
:
r = requests.get('https://s3-us-west-1.amazonaws.com/riot-api/seed_data/matches1.json')
match_histories = r.json()