私はCSVを解析し、DynamoDBのを使用してテーブルにデータを入れています。 CSVでの空白かがある場合、私が知っていることはありません
Header: "Name","Age","Birth date"
Entry: Brandon,22 <------ THROWS ERROR
問題がされています。たとえば
One or more parameter values were invalid: An AttributeValue may not contain an empty string
: はいつでも、私はエラーを受け取り、空白のエントリがあります。しかし、私はまだそれがある場合でもそれを解析する必要があります。
私は空の文字列の値を "N/A"のようなものに再割り当てしようとしましたが、このエラーを無駄にすることはありません。助言がありますか?
EDIT:コンテキストを追加するコード。
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」のようなものに空の文字列の値を再割り当てすることを試みてきました。 'おそらくコードを表示する必要があるかもしれません。うまくいくはずですから。文字列がnullの場合は、Putコマンドから属性を完全に削除することもできます。 –
この質問は以前の質問の重複ではありません。 https:// stackoverflow。com/questions/38751132 /属性に含まれない空文字列 –
編集にコードを追加します。確かに、質問は似ていますが、私は最後の質問を通して解決した多くの異なる問題がありました。問題は、この特定のエラーを回避する方法の私の主な質問は決して答えられていないです。私はこのポストが私の最後のもの(多くの問題があった)よりも簡潔ではっきりしていると感じました。 – FF5Ninja