将 CSV 文件转换为 JSON 字典?

2023-12-15

我需要将大型 CSV 数据集转换为 JSON,但输出应该是这样的 JSON 字典:

var products = {
    "crystal": {
        "description": "This is a crystal",
        "price": "2.95"
    },
    "emerald": {
        "description": "This is a emerald",
        "price": "5.95"
    }
};

This is what the CSV table would look like: enter image description here

我正在使用引用的脚本here生成 JSON:

var csv = require('csv')
var fs = require('fs')
var f = fs.createReadStream('Fielding.csv')
var w = fs.createWriteStream('out.txt')

w.write('[');

csv()
.from.stream(f, {columns:true})
.transform(function(row, index) {
    return (index === 0 ? '' : ',\n') + JSON.stringify(row);
})
.to.stream(w, {columns: true, end: false})
.on('end', function() {
     w.write(']');
     w.end();
 });

然而,该脚本的输出是以这种格式创建的:

[
    {
        "name": "crystal",
        "description": "This is a crystal",
        "price": "2.95"
    },
    {
        "name": "emerald",
        "description": "This is a emerald",
        "price": "5.95"
    }
]

我将如何修改脚本以获得我想要的“字典”格式?


您需要做的就是循环数组并使用item.name作为字典对象的键

var products ={};

data.forEach(function(item){
     products[item.name] = item;
});

这将留下name物品中的属性,但这不应该是问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 CSV 文件转换为 JSON 字典? 的相关文章

随机推荐

  • 基于范围的 for 循环中 range-init 的生命周期是多少?

    在最新的 C 标准中 它意味着 for foo bar baz 相当于 auto r bar for auto it r begin end r end it end it foo it baz 当上面的 bar 是一个返回集合的函数调用时
  • 带 Break 的无法到达语句

    所以我之前有一个问题 但意识到我发布了错误的违规代码 我已在下面标记了令人反感的言论 我想要做的是使用该 switch 语句设置每个运算符的优先级 也许有人可以指出我正确的方向 请注意 我正在运行 JAVA 7 因此 String Swit
  • boost::function 和 boost::bind 如何工作

    我不喜欢让魔术盒散布在我的代码中 这两个类到底是如何工作的 以允许基本上任何函数映射到函数对象 即使函数具有与我传递给的参数完全不同的参数集boost bind 它甚至适用于不同的调用约定 即成员方法是 thiscall在VC下 但 正常
  • SQL Access INSERT INTO 失败

    我正在尝试制作一个使用 OLEDB 连接到 Microsoft Access 数据库的 Visual Basic 应用程序 在我的数据库中 我有一个具有以下布局的用户表 ID Autonumber Username Text Passwor
  • 动态设置自动管道的参数值

    如果我创建一个参数 我可以在手动运行管道时设置其值 但是当管道自动运行时 它使用默认值 当管道自动运行时 例如响应推送到存储库 是否有任何方法可以向其传递参数值 这是我正在使用的 yaml 文件 目标是能够控制在管道中运行哪些测试 para
  • DataGridView 和 List<> 与 BindingSource 的数据绑定

    我想弄清楚数据如何绑定BindingSource应该可以工作 我想要一个DataGridView填充 a 的内容List lt gt 更新列表后 我可以看到List当我检查调试器时 增长并验证它是否被填充 我以为BindingSource当
  • 如何让 TFS 2010 检测对 Visual Studio 之外的文件所做的更改?

    我将 Team Foundation Server 2010 与 Visual Studio 2010 结合使用 每当我在 Visual Studio 之外修改文件时 TFS 似乎都没有检测到对文件所做的更改 因此不提供在修改文件后签入文件
  • 如何在 R 中正确嵌套 Paste() 函数?

    你能告诉我为什么吗 paste paste c first second collapse third collapse and 给我 first second third 代替 first second and third 获得第二个输出
  • 如何在Python中使用mysqldump和mysql复制数据库?

    我正在编写一个简单的 Python 脚本来复制 MySQL 数据库 我正在尝试根据以下问题及其答案复制数据库 不使用 mysqldump 复制数据库 python 子进程和 mysqldump and Python 子进程 mysqldum
  • Java中谷歌计算引擎与数据存储和云存储的通信

    我有 GAE 应用程序 它在 Google Cloud Datastore 中创建一些数据并将一些二进制文件存储到 Google Cloud Storage 让我们调用该应用程序WebApp 现在 我在 Google Cloud Stora
  • 静态上下文中的本地类实例创建表达式

    The JLS 15 9 2告诉我们如何确定封闭实例 令 C 为正在实例化的类 并令 i 为正在创建的实例 如果 C 是一个内部类 那么我可能有一个直接封闭的 实例 8 1 3 确定如下 如果 C 是本地类 则 如果 C 出现在静态上下文中
  • 詹金斯文本查找器无法成功我的构建

    我使用 SSH 插件在 Linux 服务器上运行命令 我使用 SSH 启动了一个脚本 该脚本需要超过 1 小时的时间才能运行 我不想等待那么多时间 所以我在 Exec 超时处设置了 30 秒的时间 但它显示错误 错误 发布时出现异常 异常消
  • 在 kubernetes 中使用 mongoose 连接到 mongodb

    我有一个使用 docker compose 开发和测试的微服务 现在我想将它部署到kubernetes 我的 docker compose 文件的一部分如下所示 tasksdb container name tasks db image m
  • 如何处理无法加载的页面并在 Watir-Webdriver 中继续测试

    我已经寻找其他问题的答案 但找不到 我的问题是 我有许多需要测试的结果 但当我点击不加载页面的 URL 时 我的脚本不断失败 以下网址无法加载 当此 URL 未加载时 我想继续测试 我尝试过使用 begin Timeout timeout
  • Java - Spark SQL DataFrame 映射功能不起作用

    在 Spark SQL 中 当我尝试在 DataFrame 上使用映射函数时 出现以下错误 DataFrame 类型中的方法 map Function1 ClassTag 不适用于参数 new Function 我也在关注 Spark 1
  • 还有比“打开类型”更好的选择吗?

    看来 C 不能switch在类型上 我收集的没有作为特殊情况添加 因为is关系意味着不止一种不同的case可能适用 除此之外还有更好的方法来模拟打开类型吗 void Foo object o if o is A A o Hop else i
  • 在 Cmake 中,如何在不清理目标文件的情况下使用新源文件更新 makefile

    我正在使用 cmake 我刚刚添加了新的源文件 我想将新的源文件包含在 cmake 生成的 makefile 中以包含在构建中 我尝试了rebuild cache但没有任何反应 Thanks 这取决于您的 cmake 文件是如何构建的 如果
  • 设置像素格式

    有人告诉我打电话getWindow setFormat PixelFormat XXXX 应将活动中窗口的像素格式设置为 XXXX 例如RGBA 8888 我试过打电话getWindow setFormat PixelFormat XXXX
  • cmd.exe 重定向运算符的顺序和位置

    首先关于顺序 以下作品用于重定向stdout and strerr to nul command 1 gt nul 2 gt 1 以下则没有 command 2 gt 1 1 gt nul 为什么顺序很重要 如何用人类可以理解的语言来解读这
  • 将 CSV 文件转换为 JSON 字典?

    我需要将大型 CSV 数据集转换为 JSON 但输出应该是这样的 JSON 字典 var products crystal description This is a crystal price 2 95 emerald descripti