我正在尝试使用 json 作为输入文件简单地插入一个项目。我在 Windows Cmd 提示符下运行命令:
aws2 dynamodb put-item --table-name testCLI --item file://C:\Temp\DynamoDB\item.json
table testCLI 有 2 个属性 - ID 和 Value
文件 item.json:
"{\"ID\": {\"N\":\"2\"}, \"Value\": {\"S\": \"From json file with escape characters\"}}"
我收到错误:
错误解析参数'--item':预期:'=',收到:'"'用于输入: "{\"ID\": {\"N\":\"2\"}, \"Value\": {\"S\": \"来自带有转义字符的 json 文件\"}}"
aws2 --version
aws-cli/2.0.0dev3 Python/3.7.5 Windows/10 botocore/2.0.0dev2
如果您使用的是 Windows,您可以使用以下命令中的转义序列在 AWS CLI 中成功运行,如下所示:
aws textract detect-document-text --document "{\"S3Object\":{\"Bucket\":\"NameOfBucket\",\"Name\":\"NameOfImage\"}}"
正在从 Windows CMD 提示符中尝试 AWS DynamoDB 示例... 我花了更多的时间来弄清楚命令、转义字符、引号……,而不是花在学习 DynamoDB 本身上的时间。呸!
如果它可能对任何人有帮助,请添加以下内容,如果我最终再次使用谷歌搜索/欺骗我的话!
Linux Shell 命令
aws dynamodb put-item \
--table-name device_data \
--item \
'{"device_id": {"S": "12345678"}, "datacount": {"N": "1"} , "timestamp": {"N": "1514876999940"}, "temperature1": {"N": "32.78"}, "temperature2": {"N": "21.76"}, "temperature3": {"N": "15.12"}, "temperature4": {"N": "20.22"}, "temperature5": {"N": "14.43"} }'
在 Windows 命令提示符中对我有用的命令:
aws dynamodb put-item ^
--table-name device_data ^
--item ^
"{\"device_id\": {\"S\": \"12345678\"}, \"datacount\": {\"N\": \"1\"} , \"timestamp\": {\"N\": \"1514876999940\"}, \"temperature1\": {\"N\": \"32.78\"}, \"temperature2\": {\"N\": \"21.76\"}, \"temperature3\": {\"N\": \"15.12\"}, \"temperature4\": {\"N\": \"20.22\"}, \"temperature5\": {\"N\": \"14.43\"} }"
该错误是由 JSON 文件开头和结尾的引号引起的。
但是,由于反斜杠,删除它们似乎也会引起问题。
当我使用这个文件时,它对我有用(在 Mac 上,而不是 Windows 上):
{"ID": {"N":"2"}, "Value": {"S": "From json file with escape characters"}}