我怎样才能从清单上读到一份口述?

2024-04-25 23:58:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个我以前从未见过的错误,而且互联网上也没有我能理解的关于如何解决这个问题的好信息

embed.add_field(name=f"Departure Airport ({res['departure']['airport']['icao']})")

错误: TypeError: list indices must be integers or slices, not str

JSON响应:https://mystb.in/NeverSmiliesTowers.json

我知道我正试图以听写的方式阅读清单,但我不太确定如何从清单中获取听写。希望你能理解我的问题

Note: res is just res = await foo.json(). It just formats the response in JSON. I am also not reading this from a local file. I am reading this from an API response.


2条回答

响应是一个列表,而不是dict。您需要首先访问该列表,然后访问所有dict键

res[0]['departure']['airport']['icao']

有一种常见的误解,即JSON总是在其顶层表示字典。它们也可以在顶层表示列表。这两个都是有效的JSON:

{
  "a": "foo",
  "b": ["bar", "baz"]
}
[
  {
    "a1": "foo1",
    "b1": ["bar1", "baz1"]
  },
  {
    "a2": "foo2",
    "b2": ["bar2", "baz2"]
  }
[

您提供的JSON示例与上面的第二个代码段相匹配,其中顶级结构是一个列表(-like)。请注意JSON是如何以一个方括号开头的:

[
   {
      "greatCircleDistance":{
        ...

{}JSON是一个字典列表,因此需要从该列表中检索第一个字典

您可以通过以下方式执行此操作:

res[0]['departure']['airport']['icao']

(请注意我们首先是如何索引res列表的,该列表返回一个字典,然后我们可以从中获取“离开”。)

相关问题 更多 >