Python3切片,TypeError:列表索引必须是整数或切片,而不是列表

时间:2019-07-08 08:58:45

标签: python python-3.x api slice

我想通过API为数组中的每个元素从.json格式提取信息。

我尝试使用下面的代码,但出现错误。

# Get the response from the API endpoint.
response = requests.get("http://api.open-notify.org/astros.json")
data = response.json()
print(data["people"][0:2]["name"])

我希望看到列出的每个名称,而不是一个错误:

  

TypeError:列表索引必须是整数或切片,而不是列表

我知道[O:2]数组中有错误。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

data["people"][0:2]返回列表[{'craft': 'ISS', 'name': 'Alexey Ovchinin'}, {'craft': 'ISS', 'name': 'Nick Hague'}]

您应该迭代列表

name = [x['name'] for x in data["people"][0:2]]
print(name)

O / P:

['Alexey Ovchinin','Nick Hague']

答案 1 :(得分:0)

由于data["people"][0:2]是一个列表(在ipython中尝试type(data["people"][0:2]),所以不能使用字符串索引来引用其元素。

如果您想要的是列表中索引从0到2(不包括2个)的人员的姓名列表,那么您想要的是:

print( [x["name"] for x in data["people"][0:2] )