Изменение параметра JSON
Недавно начал учиться писать на python. Столкнулся с проблемой: мой код добавляет еще один параметр, а не изменяет его. Что мне делать?
Код:
def edit_json(path, chapter, text):
if os.path.exists(path):
with open(path, 'r') as f:
json_data = json.load(f)
json_data[chapter] = text
with open(path, 'w') as f:
f.write(json.dumps(json_data, indent=4))
sendLogText = 'Пользователь изменил в базе данных: \n"' + chapter + '":"' + text + '"'
sendLogInfo(id, sendLogText, admin)
else:
print("Error.")
Прошу заметить, что sendLogInfo - это просто функция отправки лога, а path, chapter, text - передаются мной.
Ниже приведены фотографии JSON. Жду ответа. Спасибо.
До этой функции:
{
"user": {
"id": "",
"name": "",
"status": "",
"action": "registration_tier_1",
"isReg": "false"
}
}
После неё:
{
"user": {
"id": "",
"name": "",
"status": "",
"action": "registration_tier_1",
"isReg": "false"
},
"action": "sendBotName",
}
Ответы (1 шт):
Автор решения: OwlCodR
→ Ссылка
Для доступа к полю "action", вам необходимо обратиться к "user", а затем к "action". Однако вы обращаетесь напрямую к "action" без "user", по этой причине создается новое поле, а не редактируется старое
json_data["user"][chapter] = text