У меня есть какой-то JSON из Евростата, который выглядит следующим образом:
{
"version": "2.0",
"label": "Principaux agrégats des administrations publiques, y compris recettes et dépenses",
"href": "http://ec.europa.eu/eurostat/wdds/rest/data/v2.1/json/fr/gov_10a_main?unit=PC_GDP&na_item=TE§or=S13&time=2008&time=2009&time=2010&time=2011&time=2012&time=2013&time=2014&time=2015&time=2016&time=2017&geo=DE&geo=AT&geo=BE&geo=BG&geo=CY&geo=HR&geo=FI",
"source": "Eurostat",
"updated": "2018-10-26",
"status": {
"57": "b"
},
"extension": {
"datasetId": "gov_10a_main",
"lang": "FR",
"description": null,
"subTitle": null,
"status": {
"label": {
"b": "rupture de série"
}
}
},
"class": "dataset",
"value": {
"0": 49.9,
"1": 54.1,
"2": 52.8,
"3": 50.9,
"4": 51.2,
"5": 51.6,
"6": 52.4,
"7": 51.1,
"8": 50.3,
"9": 49.2,
"10": 50.3,
"11": 54.2,
"12": 53.3,
"13": 54.5,
"14": 55.9,
"15": 55.8,
"16": 55.3,
"17": 53.7,
"18": 53,
"19": 52.2,
"20": 37.1,
"21": 39.4,
"22": 36.2,
"23": 33.8,
"24": 34.5,
"25": 37.7,
"26": 43.1,
"27": 40.5,
"28": 35.1,
"29": 35.1,
"30": 38.4,
"31": 42.1,
"32": 42,
"33": 42.3,
"34": 41.9,
"35": 41.9,
"36": 48.8,
"37": 40.6,
"38": 38,
"39": 37.5,
"40": 43.6,
"41": 47.6,
"42": 47.3,
"43": 44.7,
"44": 44.3,
"45": 44.7,
"46": 44,
"47": 43.7,
"48": 43.9,
"49": 43.9,
"50": 48.3,
"51": 54.8,
"52": 54.8,
"53": 54.4,
"54": 56.2,
"55": 57.5,
"56": 58.1,
"57": 57.1,
"58": 55.9,
"59": 54,
"60": 45.3,
"61": 48.3,
"62": 48,
"63": 48.5,
"64": 47.8,
"65": 47.6,
"66": 48.1,
"67": 48.3,
"68": 46.9,
"69": 45
},
"dimension": {
"unit": {
"label": "unit",
"category": {
"index": {
"PC_GDP": 0
},
"label": {
"PC_GDP": "Pourcentage du produit intérieur brut (PIB)"
}
}
},
"sector": {
"label": "sector",
"category": {
"index": {
"S13": 0
},
"label": {
"S13": "Administrations publiques"
}
}
},
"na_item": {
"label": "na_item",
"category": {
"index": {
"TE": 0
},
"label": {
"TE": "Total des dépenses des administrations publiques"
}
}
},
"geo": {
"label": "geo",
"category": {
"index": {
"AT": 0,
"BE": 1,
"BG": 2,
"CY": 3,
"DE": 4,
"FI": 5,
"HR": 6
},
"label": {
"AT": "Autriche",
"BE": "Belgique",
"BG": "Bulgarie",
"CY": "Chypre",
"DE": "Allemagne (jusqu'en 1990, ancien territoire de la RFA)",
"FI": "Finlande",
"HR": "Croatie"
}
}
},
"time": {
"label": "time",
"category": {
"index": {
"2008": 0,
"2009": 1,
"2010": 2,
"2011": 3,
"2012": 4,
"2013": 5,
"2014": 6,
"2015": 7,
"2016": 8,
"2017": 9
},
"label": {
"2008": "2008",
"2009": "2009",
"2010": "2010",
"2011": "2011",
"2012": "2012",
"2013": "2013",
"2014": "2014",
"2015": "2015",
"2016": "2016",
"2017": "2017"
}
}
}
},
"id": [
"unit",
"sector",
"na_item",
"geo",
"time"
],
"size": [
1,
1,
1,
7,
10
]
}
Я хотел бы создать файл CSV.
Во-первых, мне нужно объединить .status с .valueпо строке (извините за плохое знание json) -> "status": {"57": "b"} со значением ":": {"57": 57.1}.
Во-вторых, мне нужносоздайте ту же таблицу, что и исходная (загруженная из евростата).
Я пробую много команд jq, например:
.status,.value | to_entries
Я далек от того, чтобы найти решение.
Любая помощь?Я думаю, что команда map или map_values / group_by необходима, но я не совсем понимаю эти функции.
РЕДАКТИРОВАТЬ:
Я загружаю данные из евростата .
Я использую их веб-сервис здесь , где я могу загрузить данные в формате json.
Я хотел бы воспроизвести в оболочке ту же таблицу, что и оригинал, с помощью jq.В моем примере это должно выглядеть так:
GEO / TIME, 2010,2011,2012,2013,2014,2015,2016,2017 Belgique, "53,3", "54,5", "55, 9 "," 55,8 "," 55,3 "," 53,7 "," 53,0 "," 52,2 "Bulgarie," 36,2 "," 33,8 "," 34,5 "," 37,7 "," 43,1 "," 40,5 "," 35,1 "," 35,1 "," Allemagne (jusqu'en 1990, ancien территория de la RFA) "," 47, 3 "," 44,7 "," 44,3 "," 44,7 "," 44,0 "," 43,7 "," 43,9 "," 43,9 ", Хорватия," 48,0 "," 48,5 "," 47,8 "," 47,6 "," 48,1 "," 48,3 "," 46,9 "," 45,0 "Шипр," 42,0"," 42,3 "," 41,9 "," 41,9 "," 48,8 "," 40,6 "," 38,0 "," 37,5 "Finlande," 54,8 ", "54,4", "56,2", "57,5", "58,1", "57,1", "55,9", "54,0"
Но JSONсодержат метаданные, и Finlande должен иметь значение 57,1b.
Надеюсь, с этим редактированием все станет понятнее.
И большое спасибо за вашу помощь.