vk_api и json python
Есть чат бот сообщества вк,есть json файл,при запросе от конкретного пользователя на добавление элемента в этот словарь,чатбот сначала ему присылает сообщение с списком ключей куда надо добавить ,пользователь через запятую вводит их,если они есть,то сообщение с элементом добавляется в массив-значение этого ключа(или этих),если пользователь введет те ключи которых нет,то они создадутся,и выбранный элемент добавится как первое значение массива этого ключа...Ну по идее,но код не работает:
import json
import vk_api
from vk_api.bot_longpoll import VkBotEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from vk_api import VkUpload
from vk_api.longpoll import VkLongPoll, VkEventType
try:
with open('data.json', 'r') as file:
data = json.load(file)
except (json.JSONDecodeError, FileNotFoundError):
data = {}
for event in longpoll.listen():
user_id = event.user_id
mesag = event.text
if event.type == VkEventType.MESSAGE_NEW:
if user_id == 332525988 and mesag == "добавить":
vk.messages.send(user_id=user_id,
message='И че ты хош добавить ',
random_id=0)
last_user_message = ""
while True:
if msg == 'стоп':
break
vk.messages.send(user_id=user_id,
message=f"Выбери к каким ключам принадлежит(если жанра нет,создастся новый)через запятую:\n {list(data.keys())}",
random_id=0)
if msg == last_user_message:
key = last_user_message.strip()
else:
for key in msg:
key = key.strip()
if key in data:
data[key].append(msg)
else:
data[key] = [msg]
last_user_message = key
with open('data.json', 'w') as file:
json.dump(data, file)
vk.messages.send(user_id=user_id,
message=f"Успешно добавлено!",
random_id=0)
выдает ошибку:
Traceback (most recent call last):
File "C:\Users\1\PycharmProjects\pythonProject\config.py", line 103, in <module>
data = json.load(file)
^^^^^^^^^^^^^^^
File "C:\Users\1\AppData\Local\Programs\Python\Python312\Lib\json\__init__.py", line 293, in load
return loads(fp.read(),
^^^^^^^^^
File "C:\Users\1\AppData\Local\Programs\Python\Python312\Lib\encodings\cp1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1332: character maps to <undefined>