У меня есть 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"} с "value": {"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» Булгария, «36,2», «33,8», «34,5», «37,7», «43,1», «40,5», «35,1», «35,1» «Allemagne (jusqu'en 1990, ancien Territoire 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.
Надеюсь, с этим редактированием все станет более ясным.
И большое спасибо за вашу помощь.
спасибо, но он производит всего 57,1

Ваш вопрос не очень точно указывает, какой результат вы хотите, но, надеюсь, вы сможете адаптировать следующее:
.value as $dict
| .status
| to_entries
| map( [.key, .value, $dict[.key]] )
| .[]
| @csv
С вашим вводом и вызовом jq с параметром -r это дает:
"57","b",57.1
извините, я постараюсь лучше объяснить. Отредактирую пост.
По первой части должен работать
.value[.status|keys[]]. Непонятно, как на самом деле выглядит желаемый файл CSV.