Eu tenho um arquivo JSON (dicionário?), semelhante a:
{
"Salad": {
"name": "Dressing",
"good": true,
"status": true
},
"Data_XML": {
"name": "XML",
"good": false
},
"Functionality": {
"name": "FUNC",
"good": true
},
"Data_JSON": {
"name": "JSON",
"good": true,
"status": false
}
}
Estou procurando uma saída de CSV como esta:
"title","good","name","status"
"Salad",true,"Dressing",true
"Data_XML",false,"XML",""
"Functionality",true,"FUNC",""
"Data_JSON",true,"JSON",false
O que eu encontrei e usado até agora é isso ...
jq -r '(map(keys_unsorted) | add | unique) as $cols | $cols, map(. as $row | $cols | map($row[.]))[] | @csv'
Saída:
"good","name","status"
true,"Dressing",true
false,"XML",
true,"FUNC",
true,"JSON",false
Eu precisaria do equivalente a Salad, Data_XML, Funcionalidade e Data_JSON como PRIMEIRA COLUNA (não classificada) juntamente com os dados relacionados.
Quanto ao "bom", "nome", "status" , esses seriam os campos Cabeçalho e, como tal, precisariam ser recuperados dinamicamente como eles são aleatório (cada conjunto de dados pode ter 4 e outros, até 10). É um arquivo relativamente grande e seria difícil analisá-los manualmente, deixando o "título" como o item de cabeçalho da primeira coluna. "título", "bom", "nome", "estado", "algo", "mais", "aleatório", "etc"
Eu sinto que estou tão perto ... Qualquer ajuda é muito apreciada!