Неправильная запись в файл 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:"Данные"}
}}}
Как это исправить?