如何在AWS CLI中正确处理含空格的DynamoDB属性名?
解决DynamoDB带空格属性名在PowerShell AWS CLI中的使用问题
一、带空格属性名的过滤表达式写法
DynamoDB表达式语法不允许直接使用含空格的属性名,必须通过表达式属性名(#开头的占位符)映射真实属性名。结合PowerShell的引号规则,正确命令如下:
aws dynamodb scan --table-name cc_career ` --filter-expression "#fn = :t" ` --expression-attribute-names '{"#fn": "Full Name"}' ` --expression-attribute-values '{":t": {"S": "Sherman Horton"}}'
核心要点:
- 用
#fn作为Full Name的占位符,通过--expression-attribute-names完成映射 - PowerShell中用单引号包裹JSON字符串,避免内部双引号被解析
- 反引号
是PowerShell续行符,可拆分命令提升可读性,也可合并为单行
二、投影表达式无返回数据的修复
你之前的投影命令未返回Full Name数据,主要是引号转义错误导致。正确写法如下:
aws dynamodb scan --table-name cc_career ` --return-consumed-capacity "TOTAL" ` --projection-expression "#fn,#dt" ` --expression-attribute-names '{"#fn": "Email", "#dt": "Full Name"}'
问题排查:
- 无需使用
\"这类HTML转义符,PowerShell中直接用单引号包裹JSON即可 - 确认表中目标数据的
Full Name属性名大小写完全匹配(DynamoDB属性名区分大小写)
内容的提问来源于stack exchange,提问作者Sherman Horton
相关产品推荐
相关产品推荐

