【问题标题】:Node.js convert csv file to json formateNode.js 将 csv 文件转换为 json 格式
【发布时间】:2018-08-15 11:05:11
【问题描述】:

我是编程初学者。我正在从文件中读取 csv 数据,然后我需要将 csv 数据转换为 json 格式。 这是我的 csv 数据文件:

batch_id  ingredient_code   quantity    expiry_date
1             item1           1000      18-01-2019
1             item2           500       18-02-2019
2             item1           1000      18-01-2019
3             item2           1000      18-08-2019
4             item2           1000      18-01-2019
4             item1           1000      18-05-2019
4             item3           500       18-04-2019
5             item4           1000      18-01-2019

我期待这样的输出

[{
   batch_id : 1,
   items :[{ingredient_code:item1, quantity:1000, expiry_date:18-01-2019},
           {ingredient_code:item2, quantity:500, expiry_date:18-02-2019}]     
   },
   {
     batch_id : 2,
     items :[{ingredient_code:item1, quantity:1000, expiry_date:18-01-2019}]     
    },
    {
      batch_id : 3,
      items :[{ingredient_code:item1, quantity:1000, expiry_date:18-01-2019}]     
    },
    {
      batch_id : 4,
      items :[{ingredient_code:item1, quantity:1000, expiry_date:18-05-2019},
              {ingredient_code:item2, quantity:1000, expiry_date:18-01-2019},
              {ingredient_code:item3, quantity:500, expiry_date:18-04-2019}]     
     },
    {
      batch_id : 5,
      items :[{ingredient_code:item4, quantity:1000, expiry_date:18-01-2019}]     
}]

我期望的是批处理 id 应该显示一次,该批处理 id 的所有项目都应该添加到数组中。 提前致谢..... 对不起英语不好

【问题讨论】:

  • SO 不是代码提供者。您应该首先提出一个您已经尝试过的代码,并告诉使用您对此的期望以及为什么它不符合您的需求。要从您的问题开始,您可以找到读取 CSV 文件的教程,以及如何存储 CSV 文件中的数据

标签: javascript arrays json node.js csv


【解决方案1】:
  1. 创建一个空地图。
  2. 逐行迭代数据。
  3. 用逗号分隔每一行。
  4. 使用批处理 id 作为键并在 map 中查找它,它存在,将数据推送到数组中,否则使用包含该行数据的数组初始化该键。
  5. 遍历键并从中创建一个数组。

【讨论】:

  • 感谢您的回复,能否举个例子。
【解决方案2】:

csv文件和js文件在同一位置,安装节点模块csvtojson

var csv = require("csvtojson");
csv().fromFile('a.csv').on("json",function(jsonArrayObj){ 
     console.log(jsonArrayObj); 
   })

【讨论】:

    【解决方案3】:

    您可以通过在节点模块中安装 csvtojson 来实现它,方法是输入以下命令:

    npm install csvtojson --save

    您可以在这里from-csv-file-to-json-array获取更多详细信息。

    【讨论】:

      【解决方案4】:

      两步流程:

      1) 在终端运行npm i -g csvtojson

      2) 在您的文件所在的终端中运行csvtojson source.csv > converted.json。请注意,“source.csv”是您要转换的文件,“converted.json”是您将生成的文件。

      有关文档,请参阅here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-26
        • 2018-03-06
        • 2019-08-15
        • 2023-02-07
        • 1970-01-01
        • 1970-01-01
        • 2019-07-01
        • 1970-01-01
        相关资源
        最近更新 更多