-2
当我尝试上传我的json文件到dynamodb时出现一些上传错误,但似乎无法弄清楚。我得到的错误是这些:从json文件上载dynamodb时出现MultipleValidationErrors错误
"errors": [
{
"message": "Expected params.Item['lastname'] to be a structure",
"code": "InvalidParameterType",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '0' found in params.Item['lastname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '1' found in params.Item['lastname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '2' found in params.Item['lastname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '3' found in params.Item['lastname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '4' found in params.Item['lastname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '5' found in params.Item['lastname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '6' found in params.Item['lastname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Expected params.Item['firstname'] to be a structure",
"code": "InvalidParameterType",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '0' found in params.Item['firstname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '1' found in params.Item['firstname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '2' found in params.Item['firstname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.907Z"
},
{
"message": "Unexpected key '3' found in params.Item['firstname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '4' found in params.Item['firstname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '5' found in params.Item['firstname']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Expected params.Item['employeeid'] to be a structure",
"code": "InvalidParameterType",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '0' found in params.Item['hrs']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '1' found in params.Item['hrs']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '2' found in params.Item['hrs']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '3' found in params.Item['hrs']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '4' found in params.Item['hrs']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '5' found in params.Item['hrs']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
},
{
"message": "Unexpected key '6' found in params.Item['hrs']",
"code": "UnexpectedParameter",
"time": "2016-10-20T19:16:11.908Z"
}
],
"time": "2016-10-20T19:16:11.908Z"
}
我“米试图上传我的数据文件看起来像这样:
[
{
"lastname": "abc",
"firstname": "dfx",
"employeeid": 78,
"hrs": [
{
"availhrs": "123",
"ttlhrs": "111",
"bllhrs": "98",
"rto": "16",
"ondeckhrs": "0",
"nonbllhrs": "0",
"employeeid": 78,
"dtmonth": "2016-01-01T00:00:00.000Z",
"clientid": 1,
"clientId": 1,
"employeeId": 78
}
]
}
]
我创造了我的表是这样的:
var params = {
TableName : "ach3",
KeySchema: [
{ AttributeName: "employeeid", KeyType: "HASH" }, //Sort key
{ AttributeName: "lastname", KeyType: "RANGE" }
],
AttributeDefinitions: [
{ AttributeName: "lastname", AttributeType: "S" },
{ AttributeName: "employeeid", AttributeType: "N" }
],
ProvisionedThroughput: {
ReadCapacityUnits: 10,
WriteCapacityUnits: 10
}
};
和这是我如何上传表格:
var allACH = JSON.parse(fs.readFileSync('ach.json', 'utf8'));
allACH.forEach(function(movie) {
var params = {
TableName: "ach3",
Item: {
"lastname": movie.lastname,
"firstname": movie.firstname,
"employeeid": movie.employeeid,
"hrs": movie.hrs
}
};
dynamodb.putItem(params, function(err, data) {
if (err) {
console.error("Unable to add item", movie.employeeid, ". Error JSON:", JSON.stringify(err, null, 2));
} else {
console.log("PutItem succeeded:", movie.employeeid);
}
});
});
另外,“hrs”本身就是一个json文档,但在你的情况下,你将它声明为一个数字。现在删除“hrs”,看看它是否适用于“lastname”,“firstname”和“employeeid” – hatim