Я вызываю API, для которого в качестве параметров требуются динамические переменные. Однако я не знаю, как форматировать строку, чтобы включить переменные, когда она заключена в тройные кавычки и escape-символ обратной косой черты в начале строкового литерала.
Я пытался варьировать количество кавычек и использовать функцию ".format ()".
Вот код, отформатированный таким образом, чтобы получить успешный результат:
payload = "{\n\t\"firm\": \"myfirm\",\n\t\"id\": \"f87987562\",\n\t\"data\": {\n\t\t\"tracking_preference\": 2\n\t} \n}\n"
Вот моя попытка попытаться отформатировать строку более чистым способом, включая также переменные:
payload = \
"""{
"firm": {0},
"id": {1},
"data": {
"tracking_preference": {2}
}
}
""".format('myfirm', "f87987562", 2)
Это ошибка, которую я получаю:
19 }
20 }
---> 21 """.format('myfirm', "f87987562", 2)
22
23 apikey = "secret_key"
KeyError: '\n "firm"'
Я подозреваю, что это как-то связано с обратной косой чертой, но ее реализация кажется необходимой. Мы очень ценим любую помощь и понимание интуиции, стоящей за этим форматированием строки.
Я пытаюсь передать строковый литерал в функцию запроса:
response = requests.request("POST", url, data=payload, headers=headers)