Я использую модуль криптографии для шифрования некоторых данных, а затем пытаюсь сохранить их в своей базе данных SQL.Когда это строка, это работает.Однако, когда я пытаюсь использовать кортеж или dict, это терпит неудачу.В качестве вызываемой функции у меня есть следующее.(использует crypytography.Fernet.encrypt).
def encrypt(to_encrypt):
''' Takes a bytestring and returns a token. '''
key = get_key()
f = make_fernet_object(key)
token = f.encrypt(to_encrypt)
return token
Если я пытаюсь передать ему кортеж или диктовать напрямую, я получаю
TypeError: данные должны быть байтами.
Если я использую
bytes(my_tuple)
Тогда я получаю
TypeError: объект 'str' не может быть интерпретирован как целое число
Как мне превратить мой кортеж (который содержит 2 строки и dict) в байтовый объект, который Fernet будет шифровать, чтобы я мог поместить большой двоичный объект в свою базу данных SQL?
edit - Рассматриваемый кортежв формате ..
my_tuple = ('username', 'password', {'memorable question':'memorable answer', 'memorable question 2', 'memorable answer 2'})