检查客户是否在 DynamoDB table
Check if customer is in the DynamoDB table
我写了一些查询 table 的代码。现在我正在向它添加例外。
我是 Python 和 DynamoDB 的新手,所以进展缓慢而且方向不一定正确。
我被困在检查通过 input() 输入的客户名称是否存在于 table 中的部分。
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
)
它一直 returning 客户不存在。我不明白为什么。有没有更好的方法来检查客户是否在 table 中?
每个客户名称下的条目很少,因此理想情况下它应该搜索直到找到第一条记录并且 return 它存在,但我不知道如何实现这个 =(
感谢您的帮助!
由于您写道每个客户名称下都有一些条目,因此您应该了解 dynamoDB 表的构建方式以及 getItem 查询的工作方式。
简而言之:你只能通过它的主键来获取一个项目,并且这个主键必须是唯一的(突出你错的地方)。
现在有一些变通办法,因为主键可以由分区键和排序键组成,使用它们可以搜索直到找到具有特定客户名称的第一条记录。
不过,作为初学者,我建议您只为每个客户输入一个条目,并通过其姓名查询您的客户。如果您想进行高级阅读,请阅读不同类型的键以及本地和全局二级索引。
我写了一些查询 table 的代码。现在我正在向它添加例外。 我是 Python 和 DynamoDB 的新手,所以进展缓慢而且方向不一定正确。 我被困在检查通过 input() 输入的客户名称是否存在于 table 中的部分。
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
)
它一直 returning 客户不存在。我不明白为什么。有没有更好的方法来检查客户是否在 table 中? 每个客户名称下的条目很少,因此理想情况下它应该搜索直到找到第一条记录并且 return 它存在,但我不知道如何实现这个 =(
感谢您的帮助!
由于您写道每个客户名称下都有一些条目,因此您应该了解 dynamoDB 表的构建方式以及 getItem 查询的工作方式。
简而言之:你只能通过它的主键来获取一个项目,并且这个主键必须是唯一的(突出你错的地方)。
现在有一些变通办法,因为主键可以由分区键和排序键组成,使用它们可以搜索直到找到具有特定客户名称的第一条记录。
不过,作为初学者,我建议您只为每个客户输入一个条目,并通过其姓名查询您的客户。如果您想进行高级阅读,请阅读不同类型的键以及本地和全局二级索引。