Код, указанный в вопросе, записывает данные каждый раз ('w+')
и заменяет старое значение. Вместо того, чтобы поддерживать простую построчную запись, что всегда будет проблематично c, если вам придется проверять на более поздних пользователей, я бы посоветовал вам вести словарь со списком user_ids и обновлять при изменении списка и писать это и еще только сообщение отправлено.
Ниже приведен простой пример аналогичным образом:
import os
import json
def verify_id(user_id):
if not os.path.exists("example_users.json"):
users = {}
users_list = []
else:
f = open("example_users.json")
users = json.load(f)
users_list = users["users"]
if user_id not in users_list:
users_list.append(user_id)
users["users"] = users_list
# Rewrite
with open("example_users.json", 'w') as f:
json.dump(users, f)
else:
#Some message
print("Already present")
Ниже показано, как json будет выглядеть для некоторых пользователей:
{"users": [1, 132]}
Позволяет добавить того же пользователя:
verify_id(1)
Already present
Новый пользователь:
verify_id(123)
json updated: {"users": [1, 132, 123]}