我试图从这个 api 响应中获取一些数据。试图打印杀戮数量,但我不明白如何。因为在“stats”之后有很多“元数据”键。这是代码import requests import jsonimport sysurl = 'https://cod-api.tracker.gg/v1/standard/bo4/profile/1/Edr1X'headers = {'secret'} r = requests.get(url, headers=headers)print(r.text)#Get Kills amountdata = r.text#load the json to a string resp = json.loads(data)#get the statsprint (resp['data']['stats'])#get the amount of kills how?print (resp['data']['stats']['metadata']['kills'])我怎样才能获得击杀的价值?我必须遍历“元数据”吗?用for循环?
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
print([metadata['value'] for metadata in resp['data']['stats'] if metadata['metadata']['key'] == 'Kills'])
使用列表推导遍历每个元数据以查看其键是否为'Kills'.
或者,如果 kills 始终是列表的相同索引,则您可以只请求该列表位置。
这是我为验证您的信息而编写的测试:
def test_get_kills(self):
import json
resp = json.loads(resp)
kills = [metadata['value'] for metadata in resp['data']['stats'] if metadata['metadata']['key'] == 'Kills']
self.assertEqual(161, next(kills))
如果列表理解不是你的东西(它应该是),那么循环中的等价物将是:
for metadata in resp['data']['stats']:
if metadata['metadata']['key'] == 'Kills':
kills = metadata['value']
添加回答
举报
0/150
提交
取消