尝试使用Mapvalues在dynamodb中编写批处理项时出错

时间:2016-11-16 00:11:24

标签: python amazon-dynamodb boto3

我已成功使用带有boto库的写批量项。但是,当我尝试将地图值添加到请求时,我得到以下异常:

参数RequestItems.TestMap的类型无效,值:

{'PutRequest': 
    {'Item': {
     'field1': {'S': '0.0'}, 
     'field2': {'M': {'Age': {'N': '35'}, 'Name': {'S': 'Joe'}}}
      }
     }
}
, type: <type 'dict'>, valid types: <type 'list'>, <type 'tuple'>*

知道什么是错的吗?

此致 伊万。

2 个答案:

答案 0 :(得分:0)

field2 可以像这样形成。 DynamoDB会自动将其解释为MAP(即无需特别提及&#39; M&#39;)。如果你特别提到,它会创建嵌套的地图结构(参考屏幕截图2)。

'field2': {'Age': 35, 'Name': 'Joe'}

您的代码将创建嵌套地图。

response = table.put_item(
   Item={
        'yearkey': year,
        'title': title,
        'info': {
            'plot':"Nothing happens at all.",
            'rating': decimal.Decimal(0)
        },
        'field2': {'Age': 35, 'Name': 'Joe'}
    }
)

地图结构(正确): -

Map in DynamoDB

嵌套地图结构(不正确): -

Nested Map Structure

答案 1 :(得分:0)

我得到的错误并不是指格式本身而是指类型。一旦我在一个数组中封装了对象,一切都很顺利