Я работаю с веб-API для получения системных данных. Рассматриваемая строка выглядит так:
response = requests.get('https://api.company.com/api/v0/devices/[serial]/switchPorts', headers=headers)
[серийный] должен быть заменен действительным серийным номером для данного оборудования, которое я запрашиваю.
Он отлично работает, когда я использую любой действительный серийный номер.
Однако мне нужно запросить сотни элементов, поэтому я не хочу вручную изменять [серийный номер] для каждой единицы оборудования.
Используя другой предоставленный API, я создал набор () всех серийных номеров. названо: сериалы ()
Я хочу сказать:
for serial in serials:
response = requests.get('https://api.company.com/api/v0/devices/%var/switchPorts', headers=headers)
где% var получает каждый серийный номер, поэтому я могу перебирать список серийных номеров в цикле.
Есть ли способ заменить [серийный номер] переменной, которая будет получать на каждой итерации текущее значение «серийного номера» и запускать этот вызов API?





Используйте str.format
Бывший:
for serial in serials:
response = requests.get('https://api.company.com/api/v0/devices/{0}/switchPorts'.format(serial), headers=headers)
Или ф-струна
Бывший:
for serial in serials:
response = requests.get(f'https://api.company.com/api/v0/devices/{serial}/switchPorts', headers=headers)
Я бы просто заранее создал строку, а затем передал бы ее в запрос, например:
for serial in serials:
url = 'https://api.company.com/api/v0/devices/' + serial + '/switchPorts'
response = requests.get(url, headers=headers)
Мне также нравится практика создания URL-адреса для любого сетевого запроса перед фактическим запросом.