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

Rem*_*oon 3 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"
    }
]
Run Code Online (Sandbox Code Playgroud)

我想在标签“ Fiksi”上插入新对象。因此该项目可以插入文件json的中间。像这样的对象:

item = {"judul":"fiksi3", "pengarang":"pengarang3","file":"namafiksi3.txt"}
Run Code Online (Sandbox Code Playgroud)

现在我的代码:

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

它不起作用

Muh*_*hir 5

步骤1:读取资料

config = json.loads(open('filejson.json').read())
Run Code Online (Sandbox Code Playgroud)

步骤2:更新资料(在python物件中)

config["Fiksi"].append(item)
Run Code Online (Sandbox Code Playgroud)

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

with open('filejson.json','w') as f:
    f.write(json.dumps(config))
Run Code Online (Sandbox Code Playgroud)

附带一提,您可以在处理文件时使用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)
Run Code Online (Sandbox Code Playgroud)