You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DynamoDB的ProjectionExpression中引用整数类型键?

DynamoDB ProjectionExpression访问数字键字典值的问题解决

问题描述

数据结构示例:

{
  "PartitionKey": "foobar",
  "SomeDict": {
    "10": "a value",
    "20": "another value",
    ...
  }
}

尝试通过ProjectionExpression仅读取SomeDict中键为10的值,执行以下查询代码:

get_item(
  Key={"PartitionKey": "foobar"},
  ProjectionExpression="SomeDict.10"
)

触发错误:

An error occurred (ValidationException) when calling the GetItem operation: Invalid ProjectionExpression: Syntax error; token: "10", near: ".10"

原因及解决方案

这不是功能限制,而是DynamoDB的ProjectionExpression语法规则要求:当属性名(或嵌套字典的键)以数字开头、包含特殊字符,或者与DynamoDB保留关键字冲突时,不能直接通过点号语法访问,必须使用**表达式属性名(ExpressionAttributeNames)**做映射转义。

修改后的正确代码:

get_item(
  Key={"PartitionKey": "foobar"},
  ProjectionExpression="SomeDict.#key10",
  ExpressionAttributeNames={
    "#key10": "10"
  }
)

通过#key10作为占位符,在ExpressionAttributeNames中映射到实际的键名10,即可正确读取目标值。


内容的提问来源于stack exchange,提问作者Finch_Powers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 23:35:32