列表的Python问题(API / JSON)

时间:2019-01-04 21:59:42

标签: python api

我在python中的列表遇到了麻烦。 我正在尝试从请求中提取的JSON中获取数据。 这是我要从中提取的内容的摘要: https://euw1.api.riotgames.com/lol/match/v3/matches/3884275290?api_key=RGAPI-43936bd4-d025-4ead-b1cf-8a87d8598135

(不用担心,API密钥不是我开发的)

这是我遇到的代码:

print gameInUse['participants']['participantId'][participantIdList[5]]['championId']

我遇到的错误主要是 TypeError:列表索引必须是整数,而不是str

我不明白。

我知道其中一部分一定是错误的,因为其中一个索引必须不正确,或者我缺少一个索引,我只是无法弄清楚在哪里或哪个地方。

2 个答案:

答案 0 :(得分:0)

假设gameInUse是该API中返回的JSON,则问题在于Scenario Outline: Browser Test When I visit the URL <base>/<page>/<ordNumber>/<custName> Then the browser contains test <custNumber> Examples: {'datafile': 'resources/testdata/examples.xls'} 是参与者列表,因此您需要一个整数才能按索引搜索。

看起来参与者以索引1开始列出,因此您可以使用:

gameInUse['participants'](第一个参与者)。要获取其ChampionId,您可以使用:

gameInUse['participants'][0]

我使用this site帮助我更好地可视化JSON。

答案 1 :(得分:0)

如果检查Json对象的结构,您会发现gameInUse['participants']的值是list类型而不是dict,因此必须放置一个整数才能获取元素而不是字符串(字典的键)。

因此,例如gameInUse['participants'][0].

花时间阅读Json对象并了解值类型。