gpt4 book ai didi

javascript - 空字符串验证异常 - DynamoDB

转载 作者:数据小太阳 更新时间:2023-10-29 04:30:49 25 4
gpt4 key购买 nike

我在互联网上搜索了如何解决这个问题,但收效甚微...

我正在解析 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");
});

最佳答案

直到现在,DynamoDB 的 DocumentClient 中缺乏对空字符串的支持仍然是一个限制。但是,您应该知道,自 2017 年 7 月以来,AWS SDK v2.7.16document client 添加了一个构造函数选项(称为 convertEmptyValues)将空字符串、集合和二进制字符串转换为 DynamoDB NULL 类型的字段。

如果此客户端解决方法适合您,如果您希望文档客户端转换空值(长度为 0 的字符串、二进制缓冲区和集)在持久化到 DynamoDB 时转换为 NULL 类型。

像这样:

const AWS = require("aws-sdk");

const docClient = new AWS.DynamoDB.DocumentClient({
convertEmptyValues: true
});

关于javascript - 空字符串验证异常 - DynamoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38771318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com