Ошибка 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 (Декодирование строки/строк не поддерживается)


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