2016-02-11 4 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

Шаг1: Считывание данных

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

Шаг2: данные обновления (в объекте питона)

config["Fiksi"].append(item) 

Шаг 3: Запишите все данные (не добавлять) обратно в файл

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

На стороне записки, вы можете использовать json.load и json.dump вместо этого для json.loads и json.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

лучше всего работать с объектами питона:

  • импорт
  • JSON
  • Загрузите файл с json.load
  • Вставить в нагруженном Словаре
  • самосвала в файл с json.dump
Смежные вопросы