我正在尝试使用 scan 查询我的DynamoDB。但是,每次扫描时,都会出现以下错误:
“无法封送响应:Binary(b` long_string_of_random_alphanumerics )不能序列化JSON”
代码:
def login(username, password):
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('users')
response = table.scan(
FilterExpression=Key('username').eq(username)
)
items = response["Items"]
return items
此外,当我对“用户名” bytes(username,"utf-8")
进行编码时,代码不会给我错误。但是,它返回的列表为空。
Response:
[]
我运行了一个查询来检查它是否通过主键获取了任何项目,并且返回1,所以我不确定在这里我在做什么错。
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('users')
response = table.query(
KeyConditionExpression=Key('username').eq(username)
)
if response["Count"] == 0:
return False
else:
return True
答案 0 :(得分:0)
我今天也遇到了同样的问题,并且找到了解决方法:
response = table.scan(
FilterExpression = Attr("SS_username").eq(username) & Attr("SS_password").eq(password)
)
if response["Count"] == 0:
return False
else:
return True
或其他人可以分享的其他方法?