要使用jq
将散列数组JSON输入的散列转换为CSV,你可以使用jq
的@csv
过滤器。以下是一个示例:
假设你有以下的JSON输入:
[
{
"name": "Alice",
"age": 30,
"city": "New York"
},
{
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
]
你可以使用以下命令将其转换为CSV格式:
jq -r '.[] | [.name, .age, .city] | @csv' input.json
输出将会是:
"Alice","30","New York"
"Bob","25","Los Angeles"
解释:
jq -r
:-r
选项用于输出原始字符串,而不是JSON编码的字符串。.[]
:遍历数组中的每个元素。| [.name, .age, .city]
:选择需要的字段并将其放入一个数组中。| @csv
:将数组转换为CSV格式。如果你需要处理更复杂的情况,例如包含嵌套对象的JSON,你可以使用jq
的map
函数来提取所需的字段。以下是一个示例:
假设你有以下的JSON输入:
[
{
"name": "Alice",
"age": 30,
"address": {
"city": "New York",
"zip": "10001"
}
},
{
"name": "Bob",
"age": 25,
"address": {
"city": "Los Angeles",
"zip": "90001"
}
}
]
你可以使用以下命令将其转换为CSV格式:
jq -r '.[] | [.name, .age, .address.city, .address.zip] | @csv' input.json
输出将会是:
"Alice","30","New York","10001"
"Bob","25","Los Angeles","90001"
解释:
.[]
:遍历数组中的每个元素。| [.name, .age, .address.city, .address.zip]
:选择需要的字段并将其放入一个数组中。| @csv
:将数组转换为CSV格式。参考链接:
希望这能帮助你将散列数组JSON输入的散列转换为CSV格式。如果你有任何其他问题,请随时提问!
领取专属 10元无门槛券
手把手带您无忧上云