Привет всем! Недавно (сравнительно) мы разбирались, как читать json-файл. Пришла пора узнать, как сделать добавление записи в json-файл в Python. Поехали!
Как вы помните — в качестве примера у нас используется файл, в котором указаны имена сотрудников и размер их заработной платы. Выглядит сам файл следующим образом:
{
«personal»: [
{
«name»: «Вася»,
«salary»: 5000
},
{
«name»: «Саша»,
«salary»: 6000
},
{
«name»: «Петя»,
«salary»: 9000
},
{
«name»: «Даша»,
«salary»: 10000
},
{
«name»: «Маша»,
«salary»: 11000
}
]
}
и называется он personal.json. Как читать этот файл описано тут, повторяться не буду. Теперь о добавлении данных в файл. Делается это просто:
import json #Подключили библиотеку
new_data = {'name': 'Федот', 'salary': '15000'} #создали переменную, включающую в себя данные, которые мы хотим добавить в уже имеющийся файл
with open('personal.json', encoding='utf8') as f: #Открываем файл
data = json.load(f) #Получае все данные из файла (вообще все, да)
data['personal'].append(new_data) #Добавляем данные
with open('personal.json', 'w', encoding='utf8') as outfile: #Открываем файл для записи
json.dump(data, outfile, ensure_ascii=False, indent=2) #Добавляем данные (все, что было ДО добавления данных + добавленные данные)
Видим, что после работы кода файл с данным выглядит следующим образом:
{
"personal": [
{
"name": "Вася",
"salary": 5000
},
{
"name": "Саша",
"salary": 6000
},
{
"name": "Петя",
"salary": 9000
},
{
"name": "Даша",
"salary": 10000
},
{
"name": "Маша",
"salary": 11000
},
{
"name": "Федот",
"salary": "15000"
}
]
}
Радуемся 🙂
Видео, надеюсь, будет скоро. Собственно, вот и оно:
На этом все, что я могу сказать по теме «Как сделать добавление записи в JSON-файл в Python» 🙂
Спасибо за внимание 🙂 Как всегда — в случае возникновения вопросов пишите на почту, или в Телеграм.
Support the Blog!
Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️