gpt4 book ai didi

amazon-web-services - 错误解析参数 '--expression-attribute-values' : Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)

转载 作者:行者123 更新时间:2023-12-02 22:13:35 28 4
gpt4 key购买 nike

我正在运行以下查询

aws dynamodb query `
--table-name user`
--key-condition-expression "datecreated = :d" `
--expression-attribute-values "{ ':d': { 'S': '2018-08-15' } }" --endpoint-url http://localhost:8000

dynamodb 甚至理解双引号是什么吗?
  • 我试过用双引号交换单引号。
  • 到处使用双引号
  • 双引号,单双引号
  • 使用斜杠
  • 完全删除单引号
  • 最佳答案

    有两个直接的问题:

  • ' (单引号)不是有效的字符串分隔符 在 JSON 中;你必须使用 " (双引号):
  • 遗憾的是,从 v7.1 开始 PowerShell 要求您 \ -escape 参数内部 "调用外部程序时的字符 ,即使是 不需要 .
  • this documentation issue详情和 this longstanding bug report .
  • 作为手册的替代\ -下面详细的转义,你可以使用 PSv3+ ie辅助函数来自 Native module (在 PSv5+ 中,使用来自 PowerShell GalleryInstall-Module Native 安装),内部是 补偿所有损坏的行为 并允许按预期传递参数;要使用它,只需添加 ie对您的调用;例如。:ie aws dynamodb query ...


  • 因此,试试这个;注意如何 '...'用于外部引用 (PowerShell 在幕后转换为双引号)这样您就不必转义 "`"在字符串内部 - 请注意,字符串内容是按字面处理的; \但是,在调用外部程序(例如 aws)时总是需要转义。从 PowerShell 7.1 开始:
    ... --expression-attribute-values '{ \":d\": { \"S\": \"2018-08-15\" } }'

    如果您确实需要 "..."作为外部引用 为了使用 字符串扩展 (interpolation),即为了嵌入变量引用和表达式,事情变得更丑了,因为你需要应用两种转义: `"首先,为了满足PowerShell的语法要求,前面加上 \确保由此产生的嵌入 "正确传递到目标程序:
    $date = [datetime]::now.ToString('yyyy-MM-dd')
    ... --expression-attribute-values "{ \`":d\`": { \`"S\`": \`"$date\`" } }"

    here-string可以减轻痛苦,但请注意它总是使命令多行 - 并且需要 \ -escaping 仍然适用(注意 "@ ,结束定界符不仅必须在它自己的行上,而且必须在该行的最开始):
    ... --expression-attribute-values @"
    { \":d\": { \"S\": \"$date\" } }
    "@

    关于amazon-web-services - 错误解析参数 '--expression-attribute-values' : Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 3 (char 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51861707/

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