使用AWS CLI批量写入DynamoDB时JSON解析失败问题求助
排查DynamoDB批量写入JSON格式错误的常见方案
以下是针对Error parsing parameter '--request-items': Invalid JSON: No JSON object could be decoded错误的具体排查步骤:
校验顶层结构正确性
DynamoDBbatch-write-item要求JSON顶层必须是对象,键为目标表名,值是包含PutRequest/DeleteRequest的数组。示例正确结构:{ "SensorDataTable": [ { "PutRequest": { "Item": { "SensorID": {"S": "sensor-001"}, "Temperature": {"N": "25.5"} } } } ] }若顶层是数组、表名键缺失或格式错误,会直接触发解析失败。
检查JSON语法合法性
在Cloud9终端执行python -m json.tool Sensors.json,该命令会自动校验JSON语法并格式化内容。如果存在语法错误(比如遗漏逗号、引号不配对、括号不闭合),会直接输出错误位置和原因。修正DynamoDB数据类型格式
所有属性必须明确指定DynamoDB数据类型标识,不能直接写原始值:- 错误写法:
"Temperature": 25.5 - 正确写法:
"Temperature": {"N": "25.5"}
注意数字类型(N)的值必须以字符串形式传入,布尔值用{"BOOL": true},列表用{"L": [...]}等。
- 错误写法:
排查文件编码与特殊字符
确保文件为UTF-8编码(Cloud9右下角可查看编码,非UTF-8需转换),同时检查是否存在全角空格、中文标点等不可见特殊字符,替换为半角标点符号。确认文件路径与权限
执行cat Sensors.json确认文件内容是否正确加载,避免文件名大小写错误(Linux环境区分大小写)。若文件无读权限,执行chmod +r Sensors.json添加读权限。
内容的提问来源于stack exchange,提问作者Dreed66
相关产品推荐
相关产品推荐

