相关疑难解决方法(0)

如何使用jq将任意简单JSON转换为CSV?

使用jq,如何将浅层对象数组的任意JSON编码转换为CSV?

这个网站上有大量的问答,涵盖了对字段进行硬编码的特定数据模型,但是这个问题的答案应该适用于任何JSON,唯一的限制是它是一个具有标量属性的对象数组(没有深/复/子对象,扁平化这些是另一个问题).结果应包含一个标题行,给出字段名称.将优先考虑保留第一个对象的字段顺序的答案,但这不是必需的.结果可以用双引号括起所有单元格,或者只包含那些需要引用的单元格(例如'a,b').

例子

  1. 输入:

    [
        {"code": "NSW", "name": "New South Wales", "level":"state", "country": "AU"},
        {"code": "AB", "name": "Alberta", "level":"province", "country": "CA"},
        {"code": "ABD", "name": "Aberdeenshire", "level":"council area", "country": "GB"},
        {"code": "AK", "name": "Alaska", "level":"state", "country": "US"}
    ]
    
    Run Code Online (Sandbox Code Playgroud)

    可能的输出:

    code,name,level,country
    NSW,New South Wales,state,AU
    AB,Alberta,province,CA
    ABD,Aberdeenshire,council area,GB
    AK,Alaska,state,US
    
    Run Code Online (Sandbox Code Playgroud)

    可能的输出:

    "code","name","level","country"
    "NSW","New South Wales","state","AU"
    "AB","Alberta","province","CA"
    "ABD","Aberdeenshire","council area","GB"
    "AK","Alaska","state","US"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 输入:

    [
        {"name": "bang", "value": "!", "level": 0},
        {"name": "letters", "value": "a,b,c", "level": 0},
        {"name": "letters", "value": "x,y,z", "level": 1},
        {"name": "bang", "value": …
    Run Code Online (Sandbox Code Playgroud)

csv json jq

84
推荐指数
6
解决办法
5万
查看次数

使用 jq 将 JSON 数组转换为 CSV

我有一个名为 temp.json 的 JSON 文件。

{
  "users": [
    {
      "username": "jack",
      "email": "jack@somewhere.com",
      "total running apps": "1",
      "api-mock-app": "0",
      "flogo": "1",
      "ipaas": "0",
      "nodejs-app": "0"
    },
    {
      "username": "jill",
      "email": "jill@somewhere.com",
      "total running apps": "1",
      "api-mock-app": "0",
      "flogo": "1",
      "ipaas": "0",
      "nodejs-app": "0"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想把这个 JSON 转换成 CSV 像这样,

username email              total running apps api-mock-app flogo ipaas nodejs-app
jack     jack@somewhere.com 1                  0            1     0     0
jill     jill@somewhere.com 1                  0            1     0     0
Run Code Online (Sandbox Code Playgroud)

我试过这个

jq -r '.users[] | keys[0] …
Run Code Online (Sandbox Code Playgroud)

csv json jq

2
推荐指数
1
解决办法
5047
查看次数

标签 统计

csv ×2

jq ×2

json ×2