【问题标题】:FilterExpression Syntax error using boto3 dynamodb client使用 boto3 dynamodb 客户端的 FilterExpression 语法错误
【发布时间】:2017-03-28 21:06:57
【问题描述】:

我正在尝试使用 boto3 的低级客户端 api 查询 dynamodb。

   response = client.query(
        TableName='People',
        IndexName='country-index',
        KeyConditionExpression='country = :country',
        FilterExpression="attribute_not_exists('age') AND attribute_not_exists('address')",
        ExpressionAttributeValues={
            ":country":{"S": "USA"}
        },
        Limit=100
    )

我得到一个语法错误:

调用查询时发生错误(ValidationException) 操作:无效的FilterExpression:语法错误;令牌:“'”,附近: "('年龄"

boto3 中的文档重定向到亚马逊开发者指南。我找不到 client.query(...) 的语法。列出的示例用于使用 table.query(...)

【问题讨论】:

    标签: python amazon-web-services amazon-dynamodb boto3


    【解决方案1】:

    请按如下所述更改FilterExpression

    FilterExpression="attribute_not_exists(age) AND attribute_not_exists(address)",
    

    【讨论】:

    • 太棒了!是否有描述“&”或“AND”等的文档。我还想知道大于、小于等的语法。
    • 链接的文档 ^^ 用于 boto3,但此过滤器表达式使用的表达式语法对 dynamodb 的所有 SDK 通用,您直接传递给 REST API 的那个,文档在这里: docs.aws.amazon.com/amazondynamodb/latest/developerguide/…
    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多