gpt4 book ai didi

python - Dynamodb 和 Boto3,在扫描中链接多个条件

转载 作者:行者123 更新时间:2023-12-04 01:14:53 24 4
gpt4 key购买 nike

我正在寻找一种在 Dynamodb 中使用多个 FilterExpression 条件“ANDed”创建 scan 请求的方法。

例如,我们可以使用以下标准扫描“水果”数据库:

criteria = {
'fruit': 'apple',
'color': 'green',
'taste': 'sweet'
}

我知道这些可以像这样连接成一个字符串:

FilterExpression = ' AND '.join([f"{k}=:{k}" for k, v in criteria.items()])
ExpressionAttributeValues = {f":{k}": {'S': v} for k, v in criteria.items()}

然而,这似乎不是最优雅/pythonic 的方法。

最佳答案

使用reduce,可以实现这个行为:

from functools import reduce
from boto3.dynamodb.conditions import Key, And

FilterExpression=reduce(And, ([Key(k).eq(v) for k, v in criteria.items()]))

希望这对你有用!

关于python - Dynamodb 和 Boto3,在扫描中链接多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63679436/

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