Данная проблема была у меня несколько раз, каждый раз я находил решение, но потом опять сталкиваюсь с этим. В этот раз я уже не могу понять, в чем проблема.
Буду рад если вы подскажите.
Делаю чат-бота, записываю данные о пользователях в файл, от туда-же читаю данные один раз во время запуска бота. Пользуюсь библиотекой json, python3.
Ключи начинают дублироваться после первой же записи в файл.
Вот как я читаю из файла:
def reloadz():
global users, payments
try:
with open(path + 'data.json', 'r', encoding='utf-8') as f:
datz = json.loads(f.read())
users = datz['users']
payments = datz['payments']
print(datz)
except:
with open(path + 'data.json', 'w') as f:
f.write(json.dumps({'users': {}, 'payments': []}))
users = {}
payments = []
reloadz()
Во время работы бота, я изменяю переменные `users` и `payments`. В конце каждой итерации я делаю запись обратно в файл
with open(path + 'data.json', 'w') as f:
f.write(json.dumps({'users': users, 'payments': payments}))
В итоге, после первой же итерации, в файле появляется два одинаковых ключа в словаре. Вот пример того, что получается в файле:
{"users": {"603660417": {"sub": false, "current_menu": "main"}, "603660417": {"sub": true, "current_menu": "sub"}}, "payments": [16019644137]}
Думаю уже второй день! Не знаю что делать. Подскажите!