如何将地图插入 DynamoDB 表?

2022-01-15 00:00:00 python boto3 amazon-dynamodb

问题描述

我有以下代码行:

table.put_item( Item={'filename' : key, 'status' : {'M' : iocheckdict }})

iocheckdict 看起来像这样:

{'A': 'One', 'C': 'Three', 'D': 'Four', 'B': 'Two', 'E': 'Five'}

所以,当我运行代码时,我得到了这个错误:

So, when I am running the code, I get this error:

An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: Type mismatch for key status expected: S actual: M

即使我提到 M 作为数据的类型,为什么我会得到这个?

Why am I getting this, even though I mentioned M as the type of the data?

PS:我的表中有 2 列 filenamestatus

PS : I have 2 columns filename and status in my table

表的属性定义:

"AttributeDefinitions": [
    {
        "AttributeName": "filename",
        "AttributeType": "S"
    },
    {
        "AttributeName": "status",
        "AttributeType": "S"
    }
],

我知道status的类型是S,但是我在建表的时候没有找到map类型.我找到的只有 stringbinarynumber.

I understand that the type of status is S, but I haven't found the map type while creating the table. All I found are string, binary and number.


解决方案

插入dynamodb的更简单方法

Easier way to insert into dynamodb

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table("table_name")

item={}
item['filename'] = key
item['status'] = {'A': 'One', 'C': 'Three', 'D': 'Four', 'B': 'Two', 'E': 'Five'}

table.put_item(Item=item)

相关文章