通过 CLI 的 AWS DynamoDB put-item 类型无效(unicode v.dict)

Invalid type for AWS DynamoDB put-item via CLI (unicode v. dict)

我想通过命令行向我的 DynamoDB table 添加一个项目,但是我 运行 遇到类型错误。

我要添加的数据非常简单:

{
  "id": "1"
}

我运行ning的命令同样简单:

aws dynamodb put-item --table-name my_table --item '{ "id": "1" }'

我得到的错误是:

Invalid type for parameter Item.id, value: 1, type: <type 'unicode'>, valid types: <type 'dict'>

我来自 JavaScript 背景,所以我不熟悉 dict 类型。据我从我读过的一些资料中了解到,这是 Python 的事情?如何将我的数据更改为 DynamoDB 可以处理的数据?

你需要添加类型信息(我这里假设是String)

aws dynamodb put-item --table-name my_table --item '{ "id": {"S": "1" } }'

我们无法提供纯 JSON 模式作为 dynamodb put-item 命令的输入。我们需要提供 attribute(s) data type along with its value.

但是如果您有一个复杂的 JSON 模式并且您是 aws dynamodb cli 命令的新手,那么准备输入 JSON 文件就变得非常乏味。

但我们也有一个简单的解决方案,请按照以下步骤操作:

  • 准备一个示例 JSON 模式,您要将其插入到您的 dynamodb table。
  • 登录到 AWS 控制台,转到 DynamoDB -> Tables -> ,然后从顶部选项卡中选择 Items,它会显示数据(如果有的话)。
  • 现在点击 Create Item,它将打开一个新的 window,然后从那里选择选项 Text 而不是 Tree。将示例 JSON 架构粘贴到此处并保存此项。
  • 现在 Select 该记录并从 Actions 选择选项 Export to .csv。此 csv 文件包含您的 JSON 属性名称(键)、它们的相应值及其数据类型。
  • 现在大部分工作已经为您完成,您可以轻松地为您的 dynamodb put-item 命令构建输入 JSON 文件。