2017-10-06 403 views
-3

我有一個基本的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

編輯後顯示原始代碼 –

回答

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