Привет всем! Недавно выставил у себя на канале видео, посвященное вопросу «Как удалить запись из json?» кстати, запись по этому поводу доступна тут, а видео — вот здесь 🙂 И один из подписчиков канала подсказал идею следующего видео — как изменить значение ключа в словаре? Видео — совсем скоро, а пока — текстовое описание решения данного вопроса 😉 Поехали!
Итак, вернемся к многострадальному json-файлу, в котором хранится зарплата пользователей. Выглядит он вот так:
{
"personal": [
{
"name": "Вася",
"salary": 5000
},
{
"name": "Саша",
"salary": 6000
},
{
"name": "Глаша",
"salary": 5600
},
{
"name": "Федот",
"salary": 5600
}
]
}
Как видите — у нас имеется четыре пользователя, причем — каждая запись представляет собой связку «Ключ — значение», в котором ключем выступает имя пользователя, а значением — размер его зарплаты. Внимание — вопрос: как изменить значение ключа в словаре? Ну т.е. у пользователя изменилась зарплата, как внести это изменение в json-файл?
Все просто! Для начала — давайте вспомним, что любой json-файл — ничего более, как словарь. А раз это словарь — то и работать с ним нужно как со словарем. Не буду описывать методику конвертирования json-файла в словарь (библиотека json в помощь 😉 ) — приведу лишь пример рабочего кода ниже:
username = str(input('Имя пользователя? \n: '))
for text in dist['personal']:
print(text)
if text['name'] == username:
print('Пользователь найден')
new_salary = int(input('Новая зарплата\n:'))
text['salary'] = new_salary
ВСЕ!
Т.е. мы нашли нужную нам запись в словаре, в снесли туда обновленную информацию в значение salary. Осталось дело за малым — сделать дамп в json-файл, и возрадоваться. Но это уже — другая история.
И да — аналогичным образом делается корректировка значения ключа name:
username = str(input('Имя пользователя? \n: '))
print('Меняем имя пользователя')
for text in dist['personal']:
if text['name'] == username:
new_name = str(input('Введите новое имя пользователя\n: '))
text['name'] = new_name
Надеюсь, эта запись помогла вам разобраться с вопросом: как изменить значение ключа в словаре?
Как всегда — в случае возникновения вопросов пишите на почту, или в Telegram.
И да — видео выставлю сразу, как будет готово (надеюсь, скоро)
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! ❤️