Причина, по которой ваша строка не работает, в том, что вы использовали двойные кавычки "
для строки вместо одинарных кавычек '
. Поскольку формат json требует двойных кавычек, вы должны использовать только двойные кавычки внутри самой строки, а затем использовать одинарные кавычки для обозначения начала / конца строки. (Таким образом, вам не нужно продолжать использовать эти \"
без необходимости.
Кроме того, .format()
может помочь разместить переменные внутри строк, чтобы упростить их.
Это должно исправить вашу строку json:
targetTemp = 17
payload = '{\n "nodes": [{\n "attributes": {\n "targetHeatTemperature": {\n "targetValue": {},\n }\n }\n }]\n}'.format(targetTemp)
Тем не менее, использование модуля json
значительно облегчает задачу, поскольку позволяет передавать словарь python, который можно преобразовать из / в строку json.
Пример использования пакета json
:
import json
targetTemp = 17
payload = {
"nodes": [{
"attributes": {
"targetHeatTemperature": {
"targetValue": targetTemp
}
}
}]
}
payload_json = json.dumps(payload) # Convert dict to json string