如何使用Python将JSON对象写入JSON数组?

2024-07-04 15:05:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个为机器生成对象的Python文件。下面是示例

 {
 "Date/Time": "2019-01-01 8:00:00",
 "Availability": 68,
 "Performance": 70,
 "Quality": 70
 }

我有另一个Python文件,其中包含JSON数据,如下所示。如何将JSON对象插入到“machines”下的数据数组(第18行,空括号),而不将对象复制并粘贴到第二个文件中?它是否涉及将一个Python文件写入另一个Python文件

[{
"countries": [{
    "countryID": "79",
    "countryName": "USA",
    "states": [{
        "stateID": "58",
        "stateName": "VA",
        "cities": [{
            "cityID": "13",
            "cityName": "RES",
            "locations": [{
                "locationID": "48",
                "locationName": "RTC",
                "locationZIP": 11111,
                "machines": [{
                    "machineID": "98",
                    "machineName": "RED",
                    "data": []
                    }]
                }]
            }]
        }]
    }]
}]

最终目标:

[{
"countries": [{
"countryID": "79",
"countryName": "USA",
"states": [{
    "stateID": "58",
    "stateName": "VA",
    "cities": [{
        "cityID": "13",
        "cityName": "RES",
        "locations": [{
            "locationID": "48",
            "locationName": "RTC",
            "locationZIP": 11111,
            "machines": [{
                "machineID": "98",
                "machineName": "RED",
                "data": [{
                    "Date/Time": "2019-01-01 8:00:00",
                    "Availability": 68,
                    "Performance": 70,
                    "Quality": 70
                  }]
               }]
            }]
         }]
      }]
   }]
}]

Tags: 文件数据对象jsondatetimeperformancecountries
2条回答

您可以编写一个简单的python脚本,对较大的json文件进行解码,然后插入较小的json文件(也对其进行解码)

假设您要添加的数据位于一个名为“add\u me.txt”的文件中,而大数据文件是“add\u to\u me.txt”。如您所示,这两个文件都包含json对象。你可以做:

import json
with open(“add_me.txt”, “r”) as add_me, open(“add_to_me.txt”, “r+) as add_to_me:
    add_me_data = json.loads(add_me.read())
    add_to_me_data = json.loads(add_to_me.read())
    add_to_me.seek(0)

    add_to_me_data[<the right place>] = add_me_data
    add_to_me.write(json.dumps(add_to_me_data))

您可以执行^{}以使用Python数据结构,然后执行到目标结构的映射,然后执行^{}以写回目标JSON文件

import json

with open(file_name) as file:
    string = file.read()
    obj = json.loads(string)

target = map_to_target(obj)

with open(target_file_name, 'w') as out_file:
    out = json.dumps(target)
    out_file.write(out)

相关问题 更多 >

    热门问题