如何将新的json对象插入到现有的json文件中(在对象的中间)

时间:2016-02-11 07:27:55

标签: python json append

filejson.json

{"Fiksi":[
    {
    "judul":"fiksi1",
    "pengarang":"pengarang1",
    "file":"namafiksi1.txt"
    },
    {
    "judul":"fiksi2",
    "pengarang":"pengarang2",
    "file":"namafiksi2.txt"
    }
],
"Non-Fiksi":[
    {
    "judul":"nonfiksi1",
    "penulis":"penulis1",
    "file":"namanonfiksi1.txt"
    },
    {
    "judul":"nonfiksi2",
    "penulis":"penulis2",
    "file":"namanonfiksi2.txt"
    }
]

我想在标签" Fiksi"上插入新对象。所以该项可以插入文件json的中间。 像这样的对象:

item = {"judul":"fiksi3", "pengarang":"pengarang3","file":"namafiksi3.txt"}

我现在的代码:

config = json.loads(open('filejson.json').read())
with open('filejson.json','a') as f:
    data = f["Fiksi"].append(item)
    json.dumps(data)

它不起作用

3 个答案:

答案 0 :(得分:4)

第1步:读取数据

config = json.loads(open('filejson.json').read())

Step2:更新数据(在python对象中)

config["Fiksi"].append(item)

步骤3:将所有数据(不附加)写回文件

with open('filejson.json','w') as f:
    f.write(json.dumps(config))

在旁注中,您可以在处理文件时使用json.loadjson.dump代替json.loadsjson.dumps,因此它将

with open('filejson.json', 'r') as f:
    config = json.load(f)
config["Fiksi"].append(item)
with open('filejson.json','w') as f:
    json.dump(config, f)

答案 1 :(得分:1)

最好的方法是使用python对象:

  • import json
  • 使用json.load加载文件
  • 插入已加载的字典
  • 使用json.dump转储到文件

答案 2 :(得分:1)

只需添加:

f.write(json.dumps(data))