Я хочу опубликовать список объектов в элементе json body - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу сделать пост-запрос с одним из элементов, содержащим список значений ключа с несколькими объектами в нем. Однако, когда я помещаю данные JSON в мое тело запроса, элемент помещает '' по всему списку, делая его не сериализуемым для веб-сервера, который будет получать данные.

// the format should be like this ->{
"data1": str, 
"data2": int, 
"devices": {
    "device1": [ 
        {
            "timestamp": int, 
            "temperature": int 
        },
        ... // More signals from same device
    ], 

    ... // More devices for example device 2 same format etc.
}

}

Однако, когда я запускаю свой код в том же формате, я получаю такой вывод

{'data1': '1234', 'data2': 1234, 'devices': {'"device1": [{"temperature": 20, "timestamp": 1585776505}]}, {"device2": [{"temperature": 18, "timestamp": 1585776505}]'}} ///etc..

Как вы можете видеть внутри элемента устройств, это "" "в начале и в конце, что разрушает формат, чтобы веб-сервер не мог получить данные. Я не знаю, как от этого избавиться. Когда я не помещаю данные в тело запроса, формат выглядит хорошо, "" "там нет. Сначала я использую python, создав словарь, который я помещаю в список со всеми полученными устройствами, а затем помещаю их в тело запроса после использования json.dumps().

        mac_dict2 = {devicename: 
        [{"temperature" : temp, 
        "timestamp": int(time.time())}]
        } // the format i want my list of devices to have



        mac_list.append(mac_dict2) // mac_list is an empty list that gets filled with the devices
        if item == device_data[-1]: //an if statement that will fill my last index in the list with all the devices that i want send forward to the webserver
            print("MAC LIST------------>")

            print("JSON LIST------------>")
            new_mac_json = json.dumps(mac_list)
            final_list = new_mac_json[2:-2] / i use this function to erase the bars from the list 
            print("NEW LIST------------>")
            print(final_list )

            json_obj_go = {
            "data1": str,
            "data2": int(time.time()),
            "devices": {final_list // i put the list inside of the json body
            }
        }
            print("JSON OBJ------------>")
            print(json_obj_go)

Вывод выглядит почти хорошо, это просто "" ", который заканчивается до и после окончательного списка в теле запроса. Как я уже говорил ранее, я хочу, чтобы элемент устройств имел отдельные устройства внутри, содержал свои собственные специфические c значения / данные внутри массива

...