Неправильная запись в файл json

Решил написать телеграм бота который должен записывать в json некую информацию получаемую от пользователя. Бот данные получает, записывает правильно но есть ошибка в записи. В json изначально хранятся максимальное количество дней в месяце и какой то регион(в моём случае штат):

{"states":{
"washington":{
            "1": {},
            "2": {},
            "3": {},
            "4": {},
            "5": {},
            "6": {},
            "7": {},
            "8": {},
            "9": {},
            "10": {},
            "11": {},
            "12": {},
            "13": {},
            "14": {},
            "15": {},
            "16": {},
            "17": {},
            "18": {},
            "19": {},
            "20": {},
            "21": {},
            "22": {},
            "23": {},
            "24": {},
            "25": {},
            "26": {},
            "27": {},
            "28": {},
            "29": {},
            "30": {},
            "31": {}
}}}

Код функции write:

a = "washington"        
    def write(msg):
    global c
    with open("states.json", "r") as rg:
        reg = json.load(rg)
    for i in range(1, 31):
        if reg['states'][a][i] != {}:
            c = i
    reg['states'][a][c + 1] = {"txt":text_, "dtime":msg.text}
    with open("states.json", "w") as rg:
        json.dump(reg, rg, indent=4)
    bot.send_message(msg.chat.id, "Данные были зписаны")

Как должно работать: В main.py функция write открывает этот файл(states.json) после чего ищется последний ключ который имеет записанные данные. После номер записывается в глобальную переменную c которая по умолчанию 0 и прибавляется 1 для записи в пустой ключ. Далее то что лежит в переменной text_ и последнее введённое сообщение пользователем которое является датой записывается в файл в найденный ключ с. Как работает: В main.py функция write открывает этот файл(states.json) после чего ищется последний ключ который имеет записанные данные. После номер записывается в глобальную переменную c которая по умолчанию 0. Далее то что лежит в переменной text_ и последнее введённое сообщение пользователем которое является датой записывается в файл в скопированый в самый низ ключ с. Пример для большего понимания:

{"states":{
"washington":{
            "1": {},
            "2": {},
            "3": {},
            "4": {},
            "5": {},
            "6": {},
            "7": {},
            "8": {},
            "9": {},
            "10": {},
            "11": {},
            "12": {},
            "13": {},
            "14": {},
            "15": {},
            "16": {},
            "17": {},
            "18": {},
            "19": {},
            "20": {},
            "21": {},
            "22": {},
            "23": {},
            "24": {},
            "25": {},
            "26": {},
            "27": {},
            "28": {},
            "29": {},
            "30": {},
            "31": {},
            "1":{txt:"Данные", dtime:"Данные"}
}}}

Как это исправить?


Ответы (0 шт):