如何从 JSON 响应中获取所有 "id" 值?
How to get all "id" values from JSON response?
我试过这种简单的值解析,但没有用。我能够获得所有响应,如果只有一个值,我可以轻松获得值,但我无法理解为什么会出现此错误。
TypeError: list indices must be integers or slices, not str
我想从这个 JSON 响应中获取所有“id”。
这是我的代码:
def get_api_all(api):
r = requests.get(f'{base_url}/{api}/')
return r.status_code, r.json()
def test_get_person(self):
status_code, data =get_api_all('persons')
ids = []
for i in data['id']:
print(i['id'])
这是我的 json 格式的示例回复:
[
{
"id":"b9f2d28c-57dc-4381-a752-ac36611ab51a",
"first_name":"Arnold",
"last_name":"Schwarzenegger",
"birth_year":1947
},
{
"id":"b636e887-7402-4eda-885f-549ea9792116",
"first_name":"Charlize",
"last_name":"Theron",
"birth_year":1975
},
{
"id":"c22c7475-bd4b-4dfd-ab3b-eb27ef4cb59f",
"first_name":"Brad",
"last_name":"Pitt",
"birth_year":1963
},
{
"id":"33c22f9d-cfc4-4733-986a-61e1a73cee8e",
"first_name":"Patrick",
"last_name":"Stewart",
"birth_year":1940
},
{
"id":"a0c54b47-35b1-4894-bccf-7bac9ade8f41",
"first_name":"dumm",
"last_name":"Stewart",
"birth_year":1940
},
{
"id":"a43fca0c-2a49-49be-902f-ec48ac4b57cb",
"first_name":"Patrick",
"last_name":"Stewart",
"birth_year":1940
} ]
你这里有误:
for i in data['id']:
print(i['id'])
应该是:
for i in data:
print(i['id'])
因为数据是字典列表,而不是字典。列表没有键,因此 data['id']
引发错误。
我试过这种简单的值解析,但没有用。我能够获得所有响应,如果只有一个值,我可以轻松获得值,但我无法理解为什么会出现此错误。
TypeError: list indices must be integers or slices, not str
我想从这个 JSON 响应中获取所有“id”。
这是我的代码:
def get_api_all(api):
r = requests.get(f'{base_url}/{api}/')
return r.status_code, r.json()
def test_get_person(self):
status_code, data =get_api_all('persons')
ids = []
for i in data['id']:
print(i['id'])
这是我的 json 格式的示例回复:
[
{
"id":"b9f2d28c-57dc-4381-a752-ac36611ab51a",
"first_name":"Arnold",
"last_name":"Schwarzenegger",
"birth_year":1947
},
{
"id":"b636e887-7402-4eda-885f-549ea9792116",
"first_name":"Charlize",
"last_name":"Theron",
"birth_year":1975
},
{
"id":"c22c7475-bd4b-4dfd-ab3b-eb27ef4cb59f",
"first_name":"Brad",
"last_name":"Pitt",
"birth_year":1963
},
{
"id":"33c22f9d-cfc4-4733-986a-61e1a73cee8e",
"first_name":"Patrick",
"last_name":"Stewart",
"birth_year":1940
},
{
"id":"a0c54b47-35b1-4894-bccf-7bac9ade8f41",
"first_name":"dumm",
"last_name":"Stewart",
"birth_year":1940
},
{
"id":"a43fca0c-2a49-49be-902f-ec48ac4b57cb",
"first_name":"Patrick",
"last_name":"Stewart",
"birth_year":1940
} ]
你这里有误:
for i in data['id']:
print(i['id'])
应该是:
for i in data:
print(i['id'])
因为数据是字典列表,而不是字典。列表没有键,因此 data['id']
引发错误。