Ошибка Decoding str is not supported
Пишу бота для ВК Сообщества на Python.
Хотел получить данные пользователя из ВК и перенести их в файлы на свой компьютер, чтобы потом из этих строк файла создать переменные пользователя, чтобы потом с этим не затрудняться.
Написал код:
id = event.user_id
vk = vk_session.get_api()
user_get=vk.users.get(user_ids = (id))
user_get=user_get[0]
first_name=user_get['first_name']
last_name=user_get['last_name']
full_name=first_name+' '+last_name
Сначала записал id пользователя, его имя, фамилию и их слитно.
idFile = str('Data/Users/'+str(id)+'.dat')
check_file = os.path.exists(idFile)
Потом проверил существование файла с данными пользователя, чтобы проверить, пишет он первый раз или нет.
if check_file == False:
idFile_text_UserDataSECTION = 'ДАННЫЕ ПРОФИЛЯ'
idFile_text_UserDataSECTION_FirstName = str('Имя:', first_name)
idFile_text_UserDataSECTION_LastName = str('Фамилия:', last_name)
idFile_text_UserDataSECTION_FullName = str('Полностью:', full_name)
idFile_text_UserDataSECTION_NickName = 'Никнейм: Не указан'
f=open(idFile, 'w')
f.write(idFile_text_UserDataSECTION + '\n')
f.write(idFile_text_UserDataSECTION_FirstName + '\n')
f.write(idFile_text_UserDataSECTION_LastName + '\n')
f.write(idFile_text_UserDataSECTION_FullName + '\n')
f.write(idFile_text_UserDataSECTION_NickName + '\n')
f.close()
check_file = os.path.exists(idFile)
Если пользователь пишет впервые, и файл с данными отсутствует, то я переношу его данные в переменные, в которых будет текст для файла. Потом создаю новый файл, название которого - id пользователя и вписываю туда эти данные. После чего проверяю существование файла ещё раз, чтобы он перенёс текст в нужные переменные.
if check_file == True:
f=open(idFile, 'r')
user_vars = f.read().splitlines()
f.close()
first_name = user_vars[1].replace('Имя: ', '')
last_name = user_vars[2].replace('Фамилия: ', '')
full_name = user_vars[3].replace('Полностью: ', '')
nickname = user_vars[4].replace('Никнейм: ')
if nickname == 'Не указан':
nickname = first_name
Если же файл существует (для этого я проверял его существование в конце прошлой части кода), то файл с данными считывается и переносится списком в переменную user_vars.
После чего придаю нужным переменным значения из списка и удаляю ненужный мне текст через функцию replace()
Последняя часть кода:
if nickname == 'Не указан':
nickname = first_name
Делает следующее: у меня, когда указывается имя пользователя в сообщениях Бота, то он будет использовать для этого переменную nickname, а не first_name, чтобы, если у пользователя указан никнейм, то выводился этот самый никнейм.
Для этого я написал, что если nickname не указан, то его переменная будет равна first_name
Выдаёт ошибку: Decoding str is not supported (Декодирование строки/строк не поддерживается)