json - 如何使用 JQ 将 JSON 数组值展平为 CSV
问题描述
我有一个 JSON 文件,其中包含应用程序客户端及其相关的应用程序功能:
{
"client-A": [
"feature-x"
],
"client-B": [
"feature-x",
"feature-y"
],
"client-C": [
"feature-z"
],
"client-D": [
"feature-x",
"feature-z"
],
...
}
我正在尝试将其转换为以下 CSV:
client,feature
client-A,feature-x
client-B,feature-x
client-B,feature-y
client-C,feature-z
client-D,feature-x
client-D,feature-z
有什么简单的方法jq
可以完成这项工作?
解决方案
不确定这是否是最有效的方法,但您可以使用以下管道进行转换:
<yourfile.json jq -r 'to_entries | .[] | { key: .key, value: .value[] } | [ .key, .value ] | @csv'
to_entries
将结构转换为“键值”对,然后可以对其进行操作。该{ key: .key, value: .value[] }
位会将数组转换为多行...
推荐阅读
- python - Python pytz:显示时区的实际时间
- ios - 检测对 UITableViewCell 内的 UIViewCollectionCell 的点击
- api - 如何在具有不同查询参数的多个匹配 URL 上获取特定存根
- java - C#中3DES加密的java等价物是什么
- java - 从文件中解码“编译的 Java 类数据,版本 52.0”文本
- python - Pandas DataFrame,列中的列
- curl - 为 arm-linux-gnueabi 构建 libcurl:为什么 curl 忽略 openssl?
- html - 确保正文高度不超过浏览器高度
- android-emulator - Android模拟器的“插入虚拟耳机插头”是什么意思?
- ios - 如何在 Xcode 10.1 中添加 Alamofire