gpt4 book ai didi

python-3.x - KeyConditionExpression接受无效的输入并且不引发异常

转载 作者:行者123 更新时间:2023-12-03 08:44:17 25 4
gpt4 key购买 nike

我是DynamoDB的新手,并试图通过其文档以及boto3增强功能
我编写了一些代码,该代码应该查询几个表以获取不同的参数并进行一些计算。它有效,但是我尚未实现错误处理。
我注意到的是,当我在.eq(customerName)中传递无效的customerName时,它不会引发任何相关错误,而是继续进行进一步的计算,这显然会失败。
但是,如果我将Key从'CustomerName'更改为随机值,它将检测到。
如何检查通过输入输入的customerName是否存在,如果不存在,则抛出错误?该try-except无法捕获它。我遇到了attribute_not_exists,其逻辑上与我要实现的目标相似,但是它不需要键。

    try:
response = table.query(
KeyConditionExpression=Key('customerName').eq(customerName),
ProjectionExpression='price',
)

# some code

except ClientError as err:
logger.info(f"The customer {customerName} doesn't exist: {err}")
sys.exit(1)

最佳答案

在键条件表达式中使用无效的键名称进行查询会引发异常,因为这是无意义的查询。

查询不存在的键值不是一个错误-实际上,您可能会遇到的任何数据库都是如此。数据库没有任何依据可得出结论,该值是“错误的”,因为对于一个根本找不到的值来说,这并不是一个有意义的概念。
response['Items']包含一组匹配项。如果未找到任何记录,则没有任何项目。如果没有找到记录,则应检查这种情况,您认为这是意外的。

关于python-3.x - KeyConditionExpression接受无效的输入并且不引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58096577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com