我想通过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]数组中有错误。有人可以帮忙吗?
答案 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] )