[英]AWS DynamoDB Python - not returning attributes from table.scan()
[英]DynamoDB not returning Scan values
我正在尝试使用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
此外,当我编码 "username" 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
我今天也遇到了同样的问题,并找到了解决方法:
response = table.scan(
FilterExpression = Attr("SS_username").eq(username) & Attr("SS_password").eq(password)
)
if response["Count"] == 0:
return False
else:
return True
或任何其他人可以分享的方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.