Python dynamodb put_项中使用boto3的Unicode解码错误

Python dynamodb put_项中使用boto3的Unicode解码错误,python,amazon-dynamodb,Python,Amazon Dynamodb,我试图将API密码等存储在dynamodb表中,用AES加密,但存储起来有问题。我有一个记录着我正在写的数据的口述 for key in endpoint: if 'password' in key or 'security' in key or 'secret' in key: #encrypt the value obj = AES.new( landlord_registry['default_

我试图将API密码等存储在dynamodb表中,用AES加密,但存储起来有问题。我有一个记录着我正在写的数据的口述

for key in endpoint:
        if 'password' in key or 'security' in key or 'secret' in key:
            #encrypt the value
            obj = AES.new(
                landlord_registry['default_crypt_salt'],
                AES.MODE_CFB,
                landlord_registry['default_crypt_iv'])
            endpoint[key] = {'B' : obj.encrypt(endpoint[key])}
        else:
            endpoint[key] = {'S' : endpoint[key]}
生成的dict如下所示:

{'mvp_version':{'S':'0.3'},'endpoint_details':[{u'time_interval':{'S':u'30'},u'username':{'S':u'blahblah@blahblah.org“},u'primary_key':{'S':u'Id'},u'security_token':{'B':'&\xd9\t\x7b\x9…},u'service_name':{'S':u'blahblah'},u'enabled':{'S':u'1'},u'endpoint_Id':{'S':u'SFORG0',u'password:{B'B':“K9\x958\x31\3 3 3 3 1...”}},,,{u'u''B'B'B'B'B'B''B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'C'B'B'B'B'C'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'B'3'B'B'C'C'C'B'B'B'B'3'3'3'3'3'3'3'3'5'9'9'9'9'9'9'9'9\xe2n….'}]}

错误是:Dynamo插入错误:(,UnicodeDecodeError('utf8',…,1,2,'无效的继续字节')

但是从我所知道的,因为我使用了{'B':'encoded text'},它应该尝试将其存储为字节而不是unicode文本。

我需要在Python 2中使用二进制(文本)包装器,以便在dynamodb中存储二进制文本。因此,行:

endpoint[key] = {'B' : obj.encrypt(endpoint[key])}
应该是这样的:

endpoint[key] = {'B' : Binary(obj.encrypt(endpoint[key]))}