最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

将存储在变量、列表和字典中的数据保存到csv

网站源码admin36浏览0评论

将存储在变量、列表和字典中的数据保存到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));
发布评论

评论列表(0)

  1. 暂无评论