"""E8 · referencia de electricidad (sin red): Eurostat nrg_pc_205 (precio a consumidores NO domésticos, semestral, España, EUR/kWh), por banda de consumo anual y nivel de impuestos. Entrada: /ref/electricidad/eurostat/nrg_pc_205_ES.json (descargado el 26-oct-2026, manifiesto n=2). Salida: salidas/ref_electricidad_eurostat.csv.""" import json, csv, itertools e = json.load(open('/ref/electricidad/eurostat/nrg_pc_205_ES.json')) ids, size = e['id'], e['size'] cats = {d: sorted(e['dimension'][d]['category']['index'].items(), key=lambda x: x[1]) for d in ids} filas = [] for combo in itertools.product(*[range(s) for s in size]): k = 0 for i, c in enumerate(combo): k = k * size[i] + c v = e['value'].get(str(k)) if v is None: continue lab = {d: cats[d][combo[i]][0] for i, d in enumerate(ids)} filas.append((lab['time'], lab['nrg_cons'], lab['tax'], v, (e.get('status') or {}).get(str(k), ''))) filas.sort() with open('/p/salidas/ref_electricidad_eurostat.csv', 'w', newline='') as f: w = csv.writer(f); w.writerow(['semestre', 'banda', 'impuestos', 'eur_kwh', 'marca']); w.writerows(filas) ult = max(x[0] for x in filas) print('filas', len(filas), 'último semestre', ult, 'actualizado', e.get('updated')) for x in filas: if x[0] in ('2022-S2', ult) and x[2] == 'X_VAT': print(x)