用JSON编写DynamoDB Map对象



我试图使用JSON文档向表中添加值,但不断出现错误。我的JSON规范有什么问题?

  • 主题是一个字符串(键(
  • 问题是一个问题/答案的映射

我一直得到:

错误:

当我运行aws dynamodb batch-write-item --request-items file://notesTable.json:时

Parameter validation failed:
Invalid type for parameter RequestItems.notesTable[0].PutRequest.Item.questions.
M, value: [OrderedDict([('what is Dynamo?', OrderedDict([('S', 'a non-relational
document based NoSQL database')]))])], type: <class 'list'>, valid types: <clas
s 'dict'>

目标:

topics    questions
------    ---------
Dynamo    {"what is Dynamo?":{"S":"a non-relational document based NoSQL database"}}

JSON结构

{
"notesTable": [
{
"PutRequest": {
"Item": {
"topic":{"S":"Dynamo"},
"questions": {
"M": [
{"what is Dynamo?":{"S":"a non-relational document based NoSQL database"}}
]
}
}
}
}
]
}
DynamoDB JSON格式不同于常规的JSON格式。根据您的目标,格式化的json应该类似于以下内容:
{
"notesTable": [
{
"PutRequest": {
"Item": {                    
"topic": {
"S": "Dynamo"
},
"questions": {
"L": [
{
"M": {
"what is Dynamo?": {
"S": "a non-relational document based NoSQL database"
}
}
}
]
}
}
}
}
]
}

有一些在线工具可以将常规json转换为dynamo json。你可以试试这个:https://dynobase.dev/dynamodb-json-converter-tool/

最新更新