Есть ли способ сделать хороший CSV из следующего кода JSON?Извлечение данных из необычного JSON
{
"cod:[email protected]" : {
"typeA" : {
"lsk:d##fjd": {
"title" : "slkdfjlkdjfd",
"year" : "2014"
},
"sdfdsfsd" : {
"title" : "slkdfjlkdjfddewfsdfd",
"year" : "2015"
}
},
"[email protected]" : {
"sd$!!fs:$dfds" : {
"title" : "slkdfjsdfsdfdsfsd",
"year" : "2012"
}
}
}
}
Вот что я пытался в JQ:
jq -rc 'keys[] as $x
| .[]|keys[] as $y
| .[]|keys[] as $z
|.[]
|[$x,$y,$z,.year] | @csv'
jq -rc 'keys_unsorted[] as $x
| .[]|keys_unsorted[] as $y
| .[]|keys_unsorted[] as $z
| .[]|[$x,$y,$z,.year] | @csv'
Но выход не является правильным, потому что если есть несколько таких записей, то ключи выходят, как сортируются и переставляются. Я также пробовал key_unsorted, но это не решило проблему.
Фиксация оригинального поколения JSON на данный момент не является вариантом, поэтому любая помощь будет оценена.
В идеале, я хотел бы получить:
"cod:[email protected]","typeA","lsk:d##fjd","slkdfjlkdjfd","2014"
"cod:[email protected]","typeA","sdfdsfsd","slkdfjlkdjfddewfsdfd","2015"
"cod:[email protected]","[email protected]","sd$!!fs:$dfds","slkdfjsdfsdfdsfsd","2012"
Не могли бы вы описать, что должно быть "хорошим" выход из вашего примера. – Kordi
Спасибо, исправил вопрос! – econ
JSON, кажется, немного необычен, но отлично. Ничего «плохо структурированного». – gnasher729