Пытаюсь записывать пользователей которые посетили моего бота. С помощью json хочу их записывать и если есть дубликат то удалять соответственно. Проблема вот в чем, при изменение буквы в
with open(file, "a", encoding="utf-8") as file_name
: вот в этой строчке. Где чтение запись и т.д При "w" он чистит прошлые записи, если вдруг бот упадет, то данные потеряются соответственно. А если я ставлю "а", то он мне каждый раз создает заново словарь(список), а не добавляет в существующий.
id = {
"ID": [],
"Login":[]
}
def write_inf(id, file):
id = json.dumps(id)
id = json.loads(str(id))
with open(file, "a", encoding="utf-8") as file_name:
json.dump(id, file_name, indent=4)
id["ID"].append(message.chat.id)
id["Login"].append(message.chat.username)
id["ID"] = list(dict.fromkeys(id["ID"]))
id["Login"] = list(dict.fromkeys(id["Login"]))
print(id["ID"])
print(id["Login"])
write_inf(id, "exem.json")
А он либо стирает данные и корректно записывает либо делает так:
{
"ID": [
6551101845
],
"Login": [
"gameday_man"
]
}{
"ID": [
6551101845
],
"Login": [
"gameday_man"
]
}
А я хочу что бы он записывал новые данные в этот же словарь, а не каждый раз создавал новый.