如何根据不同的参数值创建多个 API 请求?
How to create multiple API requests based on different param values?
所以我有这个列表,其中存储了用于查找帐户的不同请求 URLS。
accounts= []
每个 url 看起来都像这样。
'https://example.somewebsite.ie:000/v12345/accounts/12345/users'
每个 URL 都有不同的 ID,因此列表中的下一个 URL 例如
'https://example.somewebsite.ie:000/v12345/accounts/54321/users'
我试过这样做。
accountReq = []
for i in accounts:
accountReq = requests.get(i, headers=headers).json()
for each in accountReq['data']:
print(each['username']+" "+" ",each['first_name'],each['last_name'])
这只会打印出最后的 GET 请求数据。
如何根据列表中的每个不同值编写多个请求?
我可以逐行单独请求,但我不想这样做,因为我可能有 100 加 URLS 可以尝试。
accountReq
只保留最后的数据,因为您在每次迭代时都重新定义了变量。您应该将代码更改为:
accountReq = []
for i in accounts:
accountReq.append(requests.get(i, headers=headers).json())
for each in accountReq:
account = each['data']
for data in account:
print(data['username']+" "+" ",data['first_name'],data['last_name'])
现在这会将每个单独的 JSON 对象数据添加到 accountReq
列表。
如果您只对打印某些值感兴趣,那么:
accounts = [] # a list of URLs
for account in accounts:
(r := requests.get(account, headers=headers)).raise_for_status()
for d in r.json()['data']:
print(f"{d['username']}, {d['first_name']}, {d['last_name']}")
for each in accountReq:
account = each['data']
for data in account:
print(data['username']+" "+" ",data['first_name'],data['last_name'])
这就是我在调整某人提供的答案后所做的。
所以我有这个列表,其中存储了用于查找帐户的不同请求 URLS。
accounts= []
每个 url 看起来都像这样。
'https://example.somewebsite.ie:000/v12345/accounts/12345/users'
每个 URL 都有不同的 ID,因此列表中的下一个 URL 例如
'https://example.somewebsite.ie:000/v12345/accounts/54321/users'
我试过这样做。
accountReq = []
for i in accounts:
accountReq = requests.get(i, headers=headers).json()
for each in accountReq['data']:
print(each['username']+" "+" ",each['first_name'],each['last_name'])
这只会打印出最后的 GET 请求数据。
如何根据列表中的每个不同值编写多个请求?
我可以逐行单独请求,但我不想这样做,因为我可能有 100 加 URLS 可以尝试。
accountReq
只保留最后的数据,因为您在每次迭代时都重新定义了变量。您应该将代码更改为:
accountReq = []
for i in accounts:
accountReq.append(requests.get(i, headers=headers).json())
for each in accountReq:
account = each['data']
for data in account:
print(data['username']+" "+" ",data['first_name'],data['last_name'])
现在这会将每个单独的 JSON 对象数据添加到 accountReq
列表。
如果您只对打印某些值感兴趣,那么:
accounts = [] # a list of URLs
for account in accounts:
(r := requests.get(account, headers=headers)).raise_for_status()
for d in r.json()['data']:
print(f"{d['username']}, {d['first_name']}, {d['last_name']}")
for each in accountReq:
account = each['data']
for data in account:
print(data['username']+" "+" ",data['first_name'],data['last_name'])
这就是我在调整某人提供的答案后所做的。