Python 检查客户是否在DynamoDB表中
我已经编写了一些查询表的代码。现在我要给它添加例外。 我不熟悉Python和DynamoDB,因此进展缓慢,不一定朝着正确的方向发展。 我一直在检查通过input()输入的客户名称是否存在于表中Python 检查客户是否在DynamoDB表中,python,amazon-web-services,nosql,dynamodb-queries,Python,Amazon Web Services,Nosql,Dynamodb Queries,我已经编写了一些查询表的代码。现在我要给它添加例外。 我不熟悉Python和DynamoDB,因此进展缓慢,不一定朝着正确的方向发展。 我一直在检查通过input()输入的客户名称是否存在于表中 customer_name = input("Enter name:") try: response = table.get_item( TableName=table_name, Key={'customer':
customer_name = input("Enter name:")
try:
response = table.get_item(
TableName=table_name, Key={'customer': {'S': str(customer_name)}}
)
except ClientError:
logger.info(f'The customer is not found.')
else:
response = table.query(
# some code
)
它不断返回客户不存在的消息。我不明白为什么。是否有更好的方法检查客户是否在表中?
每个客户名称下都有相当多的条目,因此理想情况下,它应该搜索到第一条记录并返回它存在的信息,但我不知道如何实现这一点=(
感谢您的帮助!既然您写了每个客户名称下都有一些条目,那么您应该了解dynamoDB表是如何构建的以及getItem查询是如何工作的 简而言之:您只能通过“主键”获取项目,并且该主键必须是唯一的(这会突出显示错误的地方) 现在有一些解决方法,因为主键可以由分区键和排序键组成,使用它们可以搜索到具有特定客户名称的第一条记录 但是,作为初学者,我建议您每个客户只有一个条目,并按其名称查询客户。如果您想进行此操作,请阅读不同类型的键以及本地和全局二级索引