我正在使用Web API来检索系统数据。有问题的行如下所示:
response = requests.get('https://api.company.com/api/v0/devices/[serial]/switchPorts', headers=headers)
[序列号]必须替换为我要查询的给定设备的有效序列号。
当我使用任何有效的序列号时,它都可以正常工作。
但是,我要查询数百个项目,所以我不想为每台设备手动更改[序列号]。
使用另一个提供的API,我生成了所有序列号的set() 命名为:serials()
我想说的是:
for serial in serials:
response = requests.get('https://api.company.com/api/v0/devices/%var/switchPorts', headers=headers)
%var接收每个序列号,因此我可以循环访问序列列表。
是否有一种方法可以将[serial]替换为一个变量,该变量将在每次迭代时接收'serial'的当前值并运行该API调用?
答案 0 :(得分:1)
使用str.format
例如:
for serial in serials:
response = requests.get('https://api.company.com/api/v0/devices/{0}/switchPorts'.format(serial), headers=headers)
或 f-string
例如:
for serial in serials:
response = requests.get(f'https://api.company.com/api/v0/devices/{serial}/switchPorts', headers=headers)
答案 1 :(得分:1)
我会提前构造字符串,然后将其传递给请求,如下所示:
for serial in serials:
url = 'https://api.company.com/api/v0/devices/' + serial + '/switchPorts'
response = requests.get(url, headers=headers)
我也喜欢在实际请求之前为任何网络请求创建url的做法。