Как удалить запись из json-файла в Python

Как удалить запись из json-файла в Python?

Привет всем! Давно (очень давно) я написал вот этот пост, посвященный добавлению данных в json-файл. Потом сделал видео по этому поводу, и вот вчера к видео был добавлен комментарий-просьба — сделать видео, посвященное вопросу: как удалить запись из json-файла в Python? Видео — добавлю совсем скоро, а вот текст и код — ниже. Поехали!

Итак, как добавлять записи в json-файл мы знаем. А вот как удалить ту или иную запись по ключу (мы же помним, что в целом json — это тот же словарь, а значит имеет связку «Ключ-значение»)? На самом деле — все просто. Итак, у нас имеется json-файл с данными о зарплате пользователей. Выглядит этот файл следующим образом:

2056671356674fd37b6ad8f_000000

Теперь напишем код, который будет в качестве входного параметра получать имя пользователя, данные о котором нам нужно удалить (фактически — это ключ), а после — если искомый ключ (имя пользователя) — будут найдены — удалять эти записи. Выглядит код следующим образом:

import json
 
user_for_del = str(input('Введите имя сотрудника, данные о котором нужно удалить? \n'))
with open('personal.json', 'r', encoding='utf-8') as f:
data = json.load(f)
minimal = 0
for txt in data['personal']:
if txt['name'] == user_for_del:
data['personal'].pop(minimal)
else:
None
minimal = minimal + 1
with open('personal.json', 'w', encoding='utf-8') as outfile:
json.dump(data, outfile, ensure_ascii=False, indent=2)

В самом начале — подключаем библиотеку json, которая упрощает работу с json 🙂
После этого — получаем переменную, которая состоит из имени пользователя, которого мы будем удалять из нашего файла (фактически — это ключ в нашем словаре).
А теперь — открываем json-файл, и делаем из него словарь (в том, что это словарь — вы можете убедиться, если выведите тип переменной data). А теперь уже — совсем просто все — обрабатываем в цикле каждый элемент словаря, и сравниваем его с нашей переменной user_for_del (имя пользователя, которого мы будему удалять из json-файла): если значение совпадает — удаляем эту запись (именно для этого нам и нужна переменная minimal, которая, фактически, служит для создания номера записи). Удалили запись? Великолепно! А теперь конвертируем наш обработанный словарь в json-файл и сохраняем изменения 🙂

UPD: вот и видео подоспело… 🙂

Надеюсь, смог вам помочь. Как всегда — в случае возникновения вопросов пишите на почту, или в Telegram.