Добрый день, python скрипт присылает пустые значения "{}" на сервер
Я хочу онлайн мониторить температуру своего компа с помощью датчика, температуру он измеряет, получает значение, но на сервер приходят пустые json значения, вот код:
import requests
import glob
import time
import json
url="https://test-simpledimple.herokuapp.com/api/getdata";
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28-3c01f0955e8c')[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
return temp_c
//вот тут что то происходит не так
while 0==0:
payload = {"temperature": read_temp()}
response = requests.post(url, data = json.dumps(payload))
time.sleep(1)
print(response)
Ответы (1 шт):
Автор решения: NotHacker
→ Ссылка
Нужно было указать формат json в заголовке запроса, поэтому сервер не мог распарсить данные, считал их undercoding типом
header = {"Content-Type":"application/json"}
payload = {"temperature": read_temp()}
response = requests.post(url, data = json.dumps(payload), headers=header)
time.sleep(1)