我已經走遍瞭如何收效甚微解決這個互聯網...空字符串驗證異常 - DynamoDB
我解析一個CSV和將數據放入使用DynamoDB表。 任何時候有一個空白項,我收到錯誤:
One or more parameter values were invalid: An AttributeValue may not contain an empty string
例如:
Header: "Name","Age","Birth date"
Entry: Brandon,22 <------ THROWS ERROR
問題是,我將永遠不會知道是否有在CSV空白或不。但即使存在,我仍然需要解析它。
我試圖重新分配空字符串的值爲「N/A」,試圖破壞這個錯誤無濟於事。有什麼建議麼?
編輯:添加上下文的代碼。
var file = process.argv[2];
console.log("File: " + file);
var csv = require("fast-csv");
csv.fromPath(file, {
headers: true,
ignoreEmpty: true
})
.on("data", function(data) {
// Uncomment to see CSV data
// console.log(data);
params = {
TableName: tableName,
Item: {
RefID: {
S: data["Ref-ID"]
},
//lots more items
}
};
//Validation loops to make sure the items are defined
for (var key in params.Item) {
for (var items in params.Item[key]) {
var value = params.Item[key][items];
if (value === undefined || value === "") {
value = "N/A";
}
}
dynamodb.putItem(params, function(err, info) {
if (err) {
console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
}
else {
console.log("Added item:", JSON.stringify(data, null, 2));
}
});
// }
})
.on("end", function() {
console.log("done");
});
'我試圖在努力這個錯誤顛覆無濟於事重新分配的空字符串類似「N/A」的價值。 '也許你需要顯示你的代碼,因爲這應該可以正常工作。如果字符串爲空,也可以從Put命令中完全刪除屬性。 –
這個問題怎麼不是你以前的問題的重複? https://開頭計算器。com/questions/38751132/attribute-may-not-contains-an-empty-string –
我將在編輯中添加代碼。無可否認,這些問題是相似的,但我通過最後一個問題解決了許多不同的問題。問題是我如何解決這個具體錯誤的主要問題從來沒有回答過。我覺得這篇文章比我最後一篇(有很多問題)更簡潔明瞭。 – FF5Ninja