我的代码里有这个:
targetTemp = 17
...
payload = "{\n \"nodes\": [{\n \"attributes\": {\n \"targetHeatTemperature\": {\n \"targetValue\": '+ targetTemp +',\n }\n }\n }]\n}"
我尝试了一些我在网上找到的东西,但似乎没有任何效果。如果我把'+targetTemp+'替换成,比如说,18,那么它就可以满足我的需要了。在
我试过只用单引号,没有加号,只有变量名,结尾没有逗号。我只是在黑暗中蹒跚而行,真的。在
您的
payload
非常复杂,不需要用引号将其括起来,因为它可以被视为dict
,而且您的targetTemp
被视为字符串这就是为什么您看不到实际值。在为了简单起见,您可能需要查看Python string formatting。在
你想怎么做就怎么做
请注意,您还可以使用JSON Validators来确保json对象的格式正确(这就是我用来格式化您提供的
JSON
)的方法字符串不起作用的原因是您对字符串使用了双引号
"
,而不是单引号'
。由于json格式需要双引号,因此只应在字符串内部使用双引号,然后使用单引号来表示字符串的开始/结束。(这样你就不需要不必要地继续使用这些\"
。另外,
.format()
可以帮助将变量放入字符串中,使它们更容易。在这将修复您的json字符串:
但是,使用
json
模块会使事情变得更简单,因为它允许您传入一个python字典,该字典可以从/转换为json字符串。在使用
^{pr2}$json
包的示例:最外面的双引号内的
'+ targetTemp +'
没有进行字符串连接。它实际上是在写文字。在您应该使用
"+ targetTemp +"
但是,构建一个实际的字典并使用
json.dumps
将不太容易出错相关问题 更多 >
编程相关推荐