Ошибка при записи json в файл?

почитал про json , от туда понял что для записи словаря в фал используют
with open("file.json", 'w+') as f :
                             cl = {}
                             json.dump(cl, f)
вот собственно мой случай :
if not str(message.chat.id) in os.listdir('mat/'):
                        os.mkdir('mat/'+str(message.chat.id))
                        with open("mat/" + str(message.chat.id) + "/users_mat.json", 'w+') as f :
                             cl = {}
                             json.dump(cl, f)
                             print('111111111111')
                    f = open("mat/" + str(message.chat.id) + "/users_mat.json", 'w+')
                    users_mat =json.load(f)
                    if not str(message.from_user.id) in users_mat.keys():
                        users_mat[str(message.from_user.id)]: 0
                        json.dump(users_mat , f)
                    users_mat[str(message.from_user.id)]: users_mat [str(message.from_user.id)]+1
                    json.dump(users_mat ,f)

но ошибка : raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
ругается на мою попытку сохранить словарь в файл в первом if.
не исключаю что не правильно понял значение "dump" ,впервые в жизни с json работаю , а на всех сайтах написано одно и тоже , и нету про работу с файлами.
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
f = open("mat/" + str(message.chat.id) + "/users_mat.json", 'w+')
users_mat =json.load(f)

Открыли файл в режиме записи -> удалили содержимое файла -> пытаетесь прочитать json из пустого файла
Собственно, поменяйте режим открытия файла с w+ на r
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы