【问题标题】:Using Requests to get specific JSON API information in Python [closed]使用请求在 Python 中获取特定的 JSON API 信息 [关闭]
【发布时间】:2017-09-03 14:13:08
【问题描述】:

我在 Pyhton 3.6.2 中使用 Requests 从 url 中提取 Json 数据,但是我终生无法弄清楚如何提取特定数据点。这是我尝试过的许多尝试之一。我不是 python 专家,我正在学习。

这是 api url https://zkillboard.com/api/losses/corporation/98459043/limit/1/,它显示了游戏中的最新失利。该 API can be found here 的文档。具体来说,我正在尝试提取可能因损失而异的 KillID 信息。

"killID": 64401412,

我的代码:

import requests
import json
url = requests.get('https://zkillboard.com/api/json/corporation/98459043/losses/limit/1/')
data = json.loads(url.text)

print (data)

返回 [{'killID': 64401412, 'solarSystemID': 30045352, [..]

print (data[0])

返回 {'killID': 64401412, 'solarSystemID': 30045352, [..]

print (data[0]['KillID'])

返回“KeyError: 'KillID'”

print (data['KillID'])

returns "TypeError: list indices must be integers or slices, not str"

从我设法从其他人的问题中发现,requests 将 json 数据作为列表而不是字典返回。对于可能是非常简单的解决方案的任何帮助将不胜感激。

【问题讨论】:

  • 这是一个小写的k,而不是K。使用data[0]['killID']

标签: json python-3.x python-requests


【解决方案1】:

你快到了!该请求返回一个字典列表,因此您的 data[0]['dictkey'] 格式是正确的。但是,请记住 Python 区分大小写。看起来您想要的键是 killID(较低的 k),但您正在尝试 KillID(较高的 K)。

试试data[0][killID]

【讨论】:

  • 哈哈哇谢谢!我知道这会是那样的愚蠢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-03
  • 2019-11-25
  • 2021-12-13
相关资源
最近更新 更多