json - AWS CLI:解析参数“--item”时出错:JSON 无效:
问题描述
我正在尝试运行以下命令
aws dynamodb put-item \
--table-name TABLENAME \
--item file://accounts.json \
--profile ACCOUNTID \
--region us-east-1
TABLENAME 和 ACCOUNTID 不是变量。只是擦洗他们的真实姓名。
json 文件看起来像这样
[
{
"accountid": {"N": "ACCOUNTID"},
"accountname": {"S": "ACCOUNTNAME"}
},
{
"accountid": {"N": "ACCOUNTID"},
"accountname": {"S": "ACCOUNTNAME"}
}
]
此示例还清除了帐户信息
我不断得到
Error parsing parameter '--item': Invalid JSON:
我检查了各种验证器上的 JSON,它显示它是正确的。
我也使用了以下 json 文件
{
"accountid": {"N": "090697449863"},
"accountname": {"S": "awc-n-sf-devops"}
}
把一个项目放在桌子上,它工作正常。
我在放置 2 个项目的 json 文件中缺少什么导致错误?
提前致谢。
解决方案
好像现在put-item不支持插入多个项目。您必须使用批量写入项
下面的示例可以帮助您了解如何batch-write-item
在您的情况下使用。
accounts.json 文件的内容
{
"test-table": [
{
"PutRequest": {
"Item": {
"accountid": {
"S": "100"
},
"accountname": {
"S": "ACCOUNTNAME1"
}
}
}
},
{
"PutRequest": {
"Item": {
"accountid": {
"S": "101"
},
"accountname": {
"S": "ACCOUNTNAME2"
}
}
}
}
]
}
命令行命令
aws dynamodb batch-write-item --region us-east-1 --profile ACCOUNTID --request-items file://accounts.json
它将插入accounts.json
文件中提到的所有项目。
也有一种方法可以put-item
插入多个项目,但是您需要逐个遍历所有项目并将其插入表中(您可以使用任何 SDK)。我相信这不是最佳解决方案,因为您会多次调用put-item
API。
推荐阅读
- python - 当我尝试下载到 google colab 时,原始 github csv 的 URL 不断变化
- batch-file - 为“>”命令自动生成的 TXT 文件标题
- amazon-web-services - Ansible : 在新创建的 EC2 实例上执行命令
- angular - 在组件初始化后使用 Highmaps for Angular
- data-structures - 如何访问链接列表中的当前和上一个项目?
- c# - 我的第一个动态 SQL 插入 InvoiceHeader 数据好还是需要任何建议
- sql - Postgres / SQL 基于多表跨多表计数
- spring - Spring验证:自定义验证@RequestBody基于标准@RequestParam
- kotlin - 如何在 kotlin 中更改“ImageView”不透明度
- arduino - I2C 读取 Arduino 和 Raspberry 的区别