变量、列表和字典中的数据保存到csv"/>
将存储在变量、列表和字典中的数据保存到csv
我正在尝试用我的用户信息创建一个 csv 文件。我已经为我的变量创建了一个 csv 文件,例如“姓名”、“姓氏”和年龄,但我还在列表和字典中存储了长度未知的信息,我现在不需要解析它们(我会在未来这样做)所以现在我能够将所有由逗号分隔的列表项保存在一个单元格中,dic 也是如此,数据如下所示:
{
"name": "myname",
"surname": "mysurname",
"subjectGender": "maschiocis",
"age": "999",
"list": [
922,
938,
952],
"dict:" [
{
one: 332,
two: 395,
three: 013,
four: 953,
five: 801,
six: 924,
seven: 905
},
{
one: 192,
two: 742,
three: 113,
four: 253,
five: 881,
six: 967,
seven: 744
},]
}
这是我到目前为止的代码:
控制器/data.js
exports.saveData = async (req, res) => {
try {
const dataNew = new DataInfo({
//info
name: req.body.name,
surname: req.body.surname,
age: req.body.age,
list: req.body.listone,
dict: req.body.dictone,
});
console.log(dataNew);
// SAVED DATA START
const data = `
name,surname,age
${req.body.name},${req.body.surname},${req.body.age}
`;
fs.writeFile("./data.csv", data, "utf-8", (err) => {
if (err) console.log(err);
else console.log("Data saved");
});
//SAVE DATA END
const savedResult = await dataNew.save();
console.log(savedResult);
if (!savedResult) {
res.status(500).json({ isError: true });
}
res.status(200).json({ isError: false });
} catch (error) {
console.log(error);
res.status(300).json({ isError: true });
}
};
还有一种方法可以使用“;”作为分隔符而不是“,”?因为现在当我打开它时,我的 data.csv 文件全乱了。 谢谢大家
回答如下:如果我理解你的问题,你需要将数组或对象转换为字符串,以便保存到 CSV。有几种方法可以做到这一点,但一个简单的方法是使用
JSON.stringify
。为避免出现问题,您可以将 CSV 数据括在引号中并使用分号代替逗号。由于 JSON.stringify 也使用双引号,因此您需要使用额外的双引号进行转义。
const list = [922, 938, 952],
dict = [{one: 332, two: 395},{three: 013,four: 953}]
function convert(data) {
return JSON.stringify(data).replace(/"/g, '""');
}
console.log(convert(list));
console.log(convert(dict));
更多推荐
将存储在变量、列表和字典中的数据保存到csv
发布评论