Bor*_*ris 4 powershell amazon-dynamodb
我正在运行以下查询
aws dynamodb query `
--table-name user`
--key-condition-expression "datecreated = :d" `
--expression-attribute-values "{ ':d': { 'S': '2018-08-15' } }" --endpoint-url http://localhost:8000
Run Code Online (Sandbox Code Playgroud)
dynamodb甚至不知道双引号是什么吗?
有两个直接的问题:
'(单引号)在JSON 中不是有效的字符串定界符;您必须使用"(双引号):
可悲的是,PowerShell要求您在调用外部程序时\转义参数内部"字符,即使这不是必需的- 有关详细信息,请参见此文档问题。
因此,请尝试此操作。请注意如何'...'将其用于外部引号(PowerShell在幕后将其转换为双引号),以便您不必"像`"在字符串内部一样进行转义-请注意,然后按字面意义对待字符串内容;
该\-escaping,但是,总是调用外部程序,如在需要的时候aws:
... --expression-attribute-values '{ \":d\": { \"S\": \"2018-08-15\" } }'
Run Code Online (Sandbox Code Playgroud)
如果确实需要"..."使用外部引号来使用字符串扩展(插值),即为了嵌入变量引用和表达式,事情就会变得更糟,因为您需要应用两种转义:`"第一,满足PowerShell的语法要求,然后\确保将生成的嵌入式"文件正确传递到目标程序:
$date = [datetime]::now.ToString('yyyy-MM-dd')
... --expression-attribute-values "{ \`":d\`": { \`"S\`": \`"$date\`" } }"
Run Code Online (Sandbox Code Playgroud)
一个下面的字符串可以缓解疼痛,但要注意,它总是使命令的多行 -并且需要\-escaping仍然适用(需要注意的是"@,关闭定界符不仅要在自己的行,就必须在该行的开头):
... --expression-attribute-values @"
{ \":d\": { \"S\": \"$date\" } }
"@
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |