json2csv:把看不懂的「乱码」数据变成整齐的表格
原创 文涛的 文涛的 NewMarTech
在小说阅读器中沉浸阅读
这个工具对于程序员来说可能不过是个小工具,而对数据分析师来说却可以是打开数据新世界的钥匙。
你可能使用了一种非关系型的数据库(如 MongoDB、ElasticSearch),也可能是求工程师跑数而他懒得转换直接给了你一个看起来满是乱码的文本文件,还可能是你发现了一些有趣的数据分析产品导出原始数据时却得到了类似这样的结果:
[{
"car": "WeiRadar",
"meta": {
"price": 40000,
"color": "blue"
}
}, {
"car": "BMW",
"meta": {
"price": 35000,
"color": "black"
}
}, {
"car": "Porsche",
"meta": {
"price": 60000,
"color": "green"
}
}]
它的文件名可能是 xxx.json,或者是 xxx.js,总之,不是我们想要的 Excel 格式。json 也是一种常见的数据格式,和我们熟悉的 csv 文件一样,而且它更加灵活,功能也更加强大。但无论如何,我们还是习惯在 Excel 里干活。那么怎么把 json 转换成 csv 文件呢?(如果是程序员看到这里,可能会轻蔑地一笑。不过,别理他们。你让他们帮忙转换,他们也是折腾半天。)
这就是我们要介绍的工具——json2csv。
安装 json2csv 有几个前提:
- 你的电脑里安装了 nodejs(无论你是什么操作系统,总可以 Google 到安装的方法)
- 同时还有 npm,通常它会跟 nodejs 一起被安装
- 保证网络畅通
在命令行/终端下运行这行命令:
npm install -g json2csv
安装成功后,进入你保存 json 的目录下(假设 json 文件是 xxx.json),再运行:
json2csv -i xxx.json -o xxx.csv
这个命令,将帮助我们把 xxx.json 转换为 xxx.csv 文件,默认会包含 json 文件里的所有字段。而在数据上完全没有损失。(json 和 csv 所蕴含的数据量是一致的,也就是说能表达的信息是一样的)
如果你只想转换一部分字段,可以使用 -f 参数指定字段名:
json2csv -i xxx.json -f car,price -o xxx.csv
这个命令生成的 csv 文件里,会只有两列,car 和 price(而 color 一列被忽略了)。
接下来还有一个问题,json 文件不一定是扁平的,它可能是嵌套的结构。所谓嵌套,是说在花括号里还有花括号。
比如这样是扁平的 json:
[{
"car": "WeiRadar",
"price": 40000,
"color": "blue"
}, {
"car": "BMW",
"price": 35000,
"color": "black"
}]
而这样的,就是嵌套的(花括号里还有花括号):
[{
"car": "WeiRadar",
"meta": {
"price": 40000,
"color": "blue"
}, {
"car": "BMW",
"meta": {
"price": 35000,
"color": "black"
}
}]
这种情况,只要用点号来标注需要导出的嵌套字段就可以了:
json2csv -i xxx.json -f car,meta.price,meta.color -o xxx.csv
差点忘了看结果,好兴奋,好漂亮!

好了,我能说的就这些了。想了解 json2csv 的更多功能,可以到这里看:
https://www.npmjs.com/package/json2csv
我想你应该知道怎么关注我,那我就不废话了。我想你应该知道怎么打赏,那我就不伸手了。
暂无评论