json - 从嵌套结构中生成记录并转换为 CSV
问题描述
我有以下要转换为 CSV 的 JSON。它是一个数组数组,其中包含一个对象和一个对象数组。
[
[
{
"name": "A",
"DATA": [
{
"V": 192.1,
"Q": 0,
"T": "2020-06-12T16:52:10.000Z"
},
{
"V": 175.2,
"Q": 0,
"T": "2020-06-12T16:53:50.000Z"
}
]
},
{
"name": "B",
"DATA": [
{
"V": 176,
"Q": 0,
"T": "2020-06-12T16:53:25.000Z"
},
{
"V": 122.8,
"Q": 0,
"T": "2020-06-12T16:53:30.000Z"
},
{
"V": 122.01,
"Q": 0,
"T": "2020-06-12T16:55:35.000Z"
}
]
}
]
]
期望如下:
A,192.1,0,2020-06-12T16:52:10.000Z
A,175.2,0,2020-06-12T16:53:50.000Z
B,176,0,2020-06-12T16:53:25.000Z
B,122.8,0,2020-06-12T16:53:30.000Z
B,122.01,0,2020-06-12T16:55:35.000Z
我的输出是生成 and 的乘积name
,DATA
这不是我需要的。
解决方案
.[][] | [.name] + (.DATA[] | [.V,.Q,.T]) | @csv
如果元素中的键DATA
始终保持相同的顺序,则可以改用以下内容。
.[][] | [.name] + (.DATA[] | map(.)) | @csv
要获得有效的 CSV 输出,您需要使用 -r/--raw-output 选项调用 JQ。
推荐阅读
- python - TypeError:'DataFrame' 对象在 python 3.7 中不能解释为整数
- r - 将多元每周数据转换为R中的每月数据
- android - 如何使用 ViewModel 正确保存位图?
- c++ - 带数组的银行程序
- for-loop - 如何重用具有相同参数的循环方法
- networking - 深入了解 DNS 查询的工作原理
- .net - 无法从启用 cors 的 .net API 上的不同 Angular 项目 url 获取令牌
- angular - 如何将ngrx商店嵌入基于角度的包中,同时可以安装在消费者身上?
- typescript - 如何修补打字稿声明文件以导出 UMD 全局?
- python - Django - makemigrations - 未检测到更改/找不到应用程序