通过Python脚本将对象数组追加到现有JSON文件中

2024-09-29 21:22:23 发布

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

每当我运行python脚本时,我想为“O_数据”追加数组对象。目前,我正在对值进行硬编码

我正在尝试以下代码和imoprting JSON:
从现在开始手动传递值,值将通过参数传递。每当我运行我的this脚本时,只有gap1 gap2 gap3和gap4应该添加到新数组中。logid和pipename将保持不变,我永远不会改变。所以请尽你所能帮助我


logid = 100
pipename = "abc"
gap1 = 0.25
gap2 = 0.44
gap3 = 0.65
gap4 = 0.56
TA= "TA"

def write_json(data, filename='out1234.json'):
    with open(filename, 'a') as f:
        json.dump(data, f, indent=2, ensure_ascii=False)


var1 = {'Gap1': gap1, 'Gap2': gap2, 'Gap3': gap3, 'Gap4': gap4}

result1 = {"logid": logid,
                   "pipename": pipename,
                   "TA": TA,
                    "O_data":[var1],}

write_json(result1)

如果我运行文件两次,将得到以下结果:

{
  "logid": 100,
  "pipename": "abc",
  "TA": "TA",
  "O_data": [
    {
      "Gap1": 0.25,
      "Gap2": 0.44,
      "Gap3": 0.65,
      "Gap4": 0.56
    }
  ]
}{
  "logid": 100,
  "pipename": "abc",
  "TA": "TA",
  "O_data": [
    {
      "Gap1": 0.25,
      "Gap2": 0.44,
      "Gap3": 0.65,
      "Gap4": 0.56
    }
  ]
}

但我想要JSON格式的结果,如:

{
  "logid": 100,
  "pipename": "abc",
  "TA": "TA",
  "O_data": [
    {
      "Gap1": 0.25,
      "Gap2": 0.44,
      "Gap3": 0.65,
      "Gap4": 0.56
    },
    {
      "Gap1": 0.25,
      "Gap2": 0.44,
      "Gap3": 0.65,
      "Gap4": 0.56
    }
  ]
}

感谢您的帮助。提前谢谢


Tags: 脚本jsondataabctapipenamegap4logid
1条回答
网友
1楼 · 发布于 2024-09-29 21:22:23

您正在将一个新的JSON附加到预先存在的(作为文本,从}{之间缺少逗号可以看出)。这与向“O_数据”字段添加值不同

import json

def read_json(filename):
    with open(filename, 'r') as f:
        return json.load(f)

def write_json(filename, data):
    with open(filename, 'w') as f:
        json.dump(data, f)

data = read_json('file.json')
data['O_data'].append(stuff)

write_json('file.json', data)

相关问题 更多 >

    热门问题