使用python在json put请求中包含变量
问题描述:
我有一个基本的python传感器,它读取温度和压力并将它们保存到一个变量中。我想用这个变量作为json格式的python请求体中的一个参数。那可能吗? 我得到错误说不好的请求,另一个从str错误转换为double。使用python在json put请求中包含变量
import requests
url = "https://10.109.143.88:8443/sendsensorvalue/"
payload = "{\n\t\t\"pantherId\":2741025,\n\t\t\"values\":[\n\t\t{\n\t\t\t\"variableName\":\"Temperature\",\n\t\t\t\"timeStamp\":1507268051,\n\t\t\t\"value\":33\n\t\t},\n\t\t{\n\t\t\t\"variableName\":\"Pressure\",\n\t\t\t\"timeStamp\":1507268051,\n\t\t\t\"value\":33\n\t\t}\n\t\t\t\n\t\t\t]\n}"
headers = {
'content-type': "application/json",
'cache-control': "no-cache",
'postman-token': "6dde2794-7133-5666-560a-c09e4761ed35"
}
response = requests.request("PUT", url, data=payload, headers=headers)
print(response.text)
这个运行良好,温度和压力数据的预定义值为33。
我有相同的代码运行来获得传感器数据,并将其存储在变量
import requests
import Adafruit_BMP.BMP085 as BMP085
sensor=BMP085.BMP085()
rawTemp=sensor.read_temperature()
rawPressure=sensor.read_pressure()
我希望能够在rawTemp赋值给JSON值(33值),并把它的服务器。
答
我找到了答案。
您可以将负载拆分为多个字符串,并在将来自变量的输入转换为字符串时添加它们。
payload = "{\n\t\t\"pantherId\":2741025,\n\t\t\"values\":[\n\t\t{\n\t\t\t\"variableName\":\"Temperature\",\n\t\t\t\"timeStamp\":1507268051,\n\t\t\t\"value\":"+str(variableName1)+"\n\t\t},\n\t\t{\n\t\t\t\"variableName\":\"Pressure\",\n\t\t\t\"timeStamp\":1507268051,\n\t\t\t\"value\":"+str(variableName2)+"\n\t\t}\n\t\t\t\n\t\t\t]\n}"
请发布您的代码和追踪或其他错误消息。 – mhawke
编辑后显示原始代码 –