【问题标题】:How to pass primarykey to the put_item in DynamoDB for nested JSON如何将主键传递给 DynamoDB 中用于嵌套 JSON 的 putitem
【发布时间】:2021-04-11 08:32:28
【问题描述】:

我正在尝试使用put_item(Item = data) 将 json 对象插入 DynamoDB。

如果我们将主键字段嵌套在json中是否可能。如下例所示。

{
    "data": {
        "Details": {
            "Number": "123456"

        }
    }
}

错误:

botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: Missing the key Number in the item

如果我们可以将主字段作为 boto3 中的某个参数传递,我找不到任何参考。

【问题讨论】:

    标签: amazon-dynamodb boto3


    【解决方案1】:

    【讨论】:

    • 这里的数字是与任何数据类型无关的json字段。它是 dynamo DB 表的主键
    • 好的。您不能将对象作为键。如果您要设置嵌套属性,则需要指定数据类型。
    【解决方案2】:

    来自文档:

    主键属性允许的唯一数据类型是字符串、数字或二进制。

    所以不,不可能有嵌套的主键。

    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html

    【讨论】:

    • 谢谢!这就是我需要确认的。我已经从嵌套的 json 中提取了主键并在顶层进行了更新。它按预期工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 2016-10-29
    • 2013-10-19
    • 1970-01-01
    • 2021-12-11
    • 2014-09-11
    相关资源
    最近更新 更多