使用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值),并把它的服务器。

+0

请发布您的代码和追踪或其他错误消息。 – mhawke

+0

编辑后显示原始代码 –

我找到了答案。

您可以将负载拆分为多个字符串,并在将来自变量的输入转换为字符串时添加它们。

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}"