2016-02-11 17 views
2

filejson.json我如何可以插入新的JSON對象,以現有的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

第一步:讀數據

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

第二步:更新數據(Python對象)

config["Fiksi"].append(item) 

第三步:寫的所有數據(未追加)迴文件

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

最好的辦法是用Python對象的工作:

  • 進口JSON
  • 與json.load裝入文件
  • 插入在加載字典
  • 轉儲與那樣json.dump文件
1

只需添加:

f.write(json.dumps(data)) 
相關問題