jq를 사용하여 얕은 객체 배열을 인코딩하는 임의의 JSON을 어떻게 CSV로 변환 할 수 있습니까?
이 사이트에는 필드를 하드 코딩하는 특정 데이터 모델을 다루는 많은 Q & A가 있지만,이 질문에 대한 답변은 JSON이 주어 졌을 때 작동해야합니다. 단, 스칼라 속성이있는 객체의 배열이라는 제한이 있습니다 (딥 / 복합 / 이를 평평하게 만드는 것은 또 다른 질문입니다). 결과는 필드 이름을 제공하는 헤더 행을 포함해야합니다. 첫 번째 개체의 필드 순서를 유지하는 답변이 선호되지만 필수 사항은 아닙니다. 결과는 모든 셀을 큰 따옴표로 묶거나 인용이 필요한 셀만 묶을 수 있습니다 (예 : 'a, b').
예
입력:
[ {"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"} ]
가능한 출력 :
code,name,level,country NSW,New South Wales,state,AU AB,Alberta,province,CA ABD,Aberdeenshire,council area,GB AK,Alaska,state,US
가능한 출력 :
"code","name","level","country" "NSW","New South Wales","state","AU" "AB","Alberta","province","CA" "ABD","Aberdeenshire","council area","GB" "AK","Alaska","state","US"
입력:
[ {"name": "bang", "value": "!", "level": 0}, {"name": "letters", "value": "a,b,c", "level": 0}, {"name": "letters", "value": "x,y,z", "level": 1}, {"name": "bang", "value": "\"!\"", "level": 1} ]
가능한 출력 :
name,value,level bang,!,0 letters,"a,b,c",0 letters,"x,y,z",1 bang,"""!""",0
가능한 출력 :
"name","value","level" "bang","!","0" "letters","a,b,c","0" "letters","x,y,z","1" "bang","""!""","1"
json2csv
에있다 stackoverflow.com/questions/57242240/...