【问题标题】:Invalid type for AWS DynamoDB put-item via CLI (unicode v. dict)AWS DynamoDB put-item 通过 CLI 的类型无效(unicode v. dict)
【发布时间】:2020-06-16 11:01:07
【问题描述】:

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

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

{
  "id": "1"
}

我运行的命令同样简单:

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 可以处理的数据?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-cli


    【解决方案1】:

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

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

    【讨论】:

    • 啊,我明白你的意思了。这是他们的一个有趣的决定。我想下一步是编写一个脚本来自动化类型发现和重新格式化。谢谢! docs.aws.amazon.com/cli/latest/reference/dynamodb/…
    • 这是一个很好的答案..不确定它是否记录在任何地方,但在添加类型信息之后,它可以工作:)
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多