2016-10-20 79 views
-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); 
     } 
    }); 
}); 

回答

2

“项目”对象需要具有每个属性的类型信息: 所以,你需要像

Item: { 
     "lastname": {S: movie.lastname}, 
     "firstname": {S: movie.firstname}, 
     "employeeid": {S: movie.employeeid}, 
     "hrs": {N: String(movie.hrs) } 
    } 

这是告诉说:“姓”是串类型(S)的API。

希望可以帮到

+1

另外,“hrs”本身就是一个json文档,但在你的情况下,你将它声明为一个数字。现在删除“hrs”,看看它是否适用于“lastname”,“firstname”和“employeeid” – hatim

相关问题