如何使用JQ将JSON数组值展平为CSV

时间:2019-10-01 23:11:24

标签: json csv jq

我有一个JSON文件,其中包含应用程序客户端及其相关的应用程序功能:

import numpy as np
import PIL.Image


img = PIL.Image.open('test.png')
img.verify()
img = PIL.Image.open('test.png')
img_np = np.array(img)
print(img_np.dtype, img_np.shape)

> uint8 (192, 256)

我正在尝试将其转换为以下CSV:

{
    "client-A": [
        "feature-x"
    ],
    "client-B": [
        "feature-x",
        "feature-y"
    ],
    "client-C": [
        "feature-z"
    ],
    "client-D": [
        "feature-x",
        "feature-z"
    ],
    ...
}

使用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 完成此操作的简便方法是什么?

1 个答案:

答案 0 :(得分:0)

不确定这是否是最有效的方法,但是可以使用以下管道进行转换:

<yourfile.json jq -r 'to_entries | .[] | { key: .key, value: .value[] } | [ .key, .value ] | @csv'

to_entries将结构转换为“键值”对,然后可以对其进行操作。 { key: .key, value: .value[] }位会将数组转换为多行...