json - 我想将 json 文件列表转换为仅具有特定属性的 csv
问题描述
我有 1000 个奇怪的 json 文件。我想将它们转换为单个 csv 文件。我只想要 csv 文件中的特定属性。
这是示例 json 文件
{
"id": "90",
"productName": "XYZ",
"businessUnit": "",
"daemon": "MSU",
"features": [
{
"name": "MNQ",
"count": "10",
"id": "4"
},
{
"name": "PQR",
"count": "20",
"id": "5"
}
]
}
这是示例输出
ProductName,FeatureName, FeatureCount
XYZ,MNQ,10
XYZ,PQR,20
我想从“features”数组中提取以下属性“productName”:“XYZ”。我想将“名称”和“计数”属性提取到 CSV 文件中。
我想将其写入 1000 个奇怪的 JSON 文件并将其写入 CSV 文件。这个怎么做?
解决方案
使用米勒(https://github.com/johnkerl/miller)并运行
mlr --j2c cut -r -f "(pro|name|count)" then reshape -r "feature" -o k,v then nest --explode --values --across-fields --nested-fs ":" -f k then reshape -s k_3,v then cut -x -r -f "_" input.json >output.csv
你有
+-------------+------+-------+
| productName | name | count |
+-------------+------+-------+
| XYZ | MNQ | 10 |
| XYZ | PQR | 20 |
+-------------+------+-------+
这是一个命令行实用程序,您可以在附近的每个操作系统中使用。然后你可以做一个简单的for循环并合并所有。
推荐阅读
- .htaccess - Codeigniter4 htaccess 文件不适用于所有选项 - 索引
- sql - 如何在由逗号分隔的列表组成的字段上离开连接
- git - 我怎么知道我已经删除了我在 Git 中所做的一切?
- java - 一个简单的 Java HTTP 服务器在 ApacheBench 上失败,但在浏览器上运行良好
- typescript - 在强类型错误上使用 instanceof 总是返回 false
- nginx - 使用 auth_request_module 反向代理应用程序的 Nginx 会引发 CORS 错误
- arrays - scanf() 接受比预期更多的输入
- uitableview - IBM BPM:是否可以根据用户选择动态隐藏表的列?
- javascript - 通过onclick JS创建对象
- html - 为什么图像没有出现在 HTML 中?