добавление записи в json с помощью python
Понимаю, что вопрос простой, но не пойму как дописать в json. Есть json:
{
"name": "Вася",
"phone": "123456789"
}
и код:
import json
name = input("Имя: ")
phone = input("Телефон: ")
def create_json():
json_data = {
"name": name,
"phone": phone,
}
with open('db.json', 'w') as file:
file.write(json.dumps(json_data, indent=2, ensure_ascii=False))
# create_json()
def add_to_json():
json_data = {
"name": name,
"phone": phone,
}
data = json.load(open("db.json"))
data.append(json_data)
with open("db.json", "w") as file:
json.dump(data, file, indent=2, ensure_ascii=False)
add_to_json()
Вылезает ошибка:
AttributeError: 'dict' object has no attribute 'append'
Нужно добавить запись, что бы json имел такой вид:
{
"name": "Вася",
"phone": "123456789"
},
{
"name": "Вася",
"phone": "123456789"
}
Ответы (2 шт):
Автор решения: Андрей Крузлик
→ Ссылка
def add_to_json():
json_data = {
"name": name,
"phone": phone,
}
with open("db.json", "a") as file:
json.dump(data, file, indent=2, ensure_ascii=False)
file.write(',\n')
add_to_json()
Автор решения: WhtFck
→ Ссылка
Надо было добавить [] при создании json файла, итоговый код:
import json
name = input("Имя: ")
phone = input("Телефон: ")
def create_json():
json_data = [{
"name": name,
"phone": phone,
}
]
with open('db.json', 'w') as file:
file.write(json.dumps(json_data, indent=2, ensure_ascii=False))
# create_json()
def add_to_json():
json_data = {
"name": name,
"phone": phone,
}
data = json.load(open("db.json"))
data.append(json_data)
with open("db.json", "w") as file:
json.dump(data, file, indent=2, ensure_ascii=False)
add_to_json()