首页 > 解决方案 > 在 python 中编辑 json 文件和请求库时出现问题

问题描述

大家好,我正在尝试编辑此 json 并更改“tempetura”和“timestamp”部分,但我被困在其中,我还需要通过 http 将其发送到服务器,它不接受我的 json这是代码:

    import paho.mqtt.subscribe as subscribe
    import requests
    import datetime
    import json



    def on_message(client, userdata, message):
        print("salvando mensagem...")
        temp = str(message.payload.decode("utf-8"))
        data = datetime.datetime.utcnow().isoformat()
        print("a mensagem recebida foi :" + temp)
        print("Mandando para o interscity...")

        payload = '{"data":{"environment_monitoring":[{"temperatura": "30.0","timestamp": "13/04/2020T109:29:00"}]}}'
        r = requests.post('address', json=payload, headers="content-Type: application/json")
        print("postado no interscity")

    subscribe.callback(on_message, "teste", hostname = "address", port=1883 )

编辑1:

我修复了 json 部分,它在库中有一个列表。

import paho.mqtt.subscribe as subscribe
import requests
import datetime
import json



def on_message(client, userdata, message):
    print("salvando mensagem...")
    temp = str(message.payload.decode("utf-8"))
    data = datetime.datetime.utcnow().isoformat()
    print("a mensagem recebida foi :" + temp)
    print("Mandando para o interscity...")
    payload = '{"data":{"environment_monitoring":[{"temperatura": "30.0","timestamp": "13/04/2020T109:29:00"}]}}'
    y = json.loads(payload)
    y["data"]["environment_monitoring"][0]["temperatura"] = temp
    y["data"]["environment_monitoring"][0]["timestamp"] = data
    y = json.dumps(y)
    r = requests.post('server_addres', data=y, headers="content-Type: application/json")
    print("postado no interscity")

subscribe.callback(on_message, "teste", hostname = "mqtt_address", port=1883 )

标签: pythonjsonpython-requests

解决方案


推荐阅读