Come accedere ai dati statistici pubblicati dall’Istituto Nazionale di Statistica (Istat) attraverso API

Questo post lo devo alle tante persone che utilizzano i dati statistici prodotti e pubblicati dall’Istituto Nazionale di Statistica e che hanno necessità di farlo in modalità “machine to machine” sfruttando la comodità di utilizzare API

Non tutti sanno infatti che Istat rende disponibili i dati pubblicati su dati.istat.it, il data warehouse dell’Istituto anche attraverso API Rest con output Json. Va detto subito che questo è un canale alternativo di diffusione dati in “beta version”, è stato rilasciato nel 2011 ma è sufficientemente stabile e interessante da poter essere utilizzato senza particolari problemi.

Il formato del Json di output non è un formato qualsiasi ma risponde alle specifiche Json-Stat (https://json-stat.org/). Json-Stat nasce alcuni anni fa da un’intuizione di Xavier Badosa, un mio geniale amico e collega dell’Istituto di Statistica di Catalogna. Avevamo avuto modo di parlarne e di confrontarci in più di un’occasione, ma dopo una sessione di lavoro a Parigi presso l’OCSE in cui avemmo modo di approfondire la cosa, passammo ad implementare Json-Stat su un intero sistema di diffusione. Quello dell’Istat. Nasce così apistat.istat.it.

Dopo Istat altri produttori di statistica ufficiale si sarebbero uniti in seguito all’iniziativa Json-Stat. Statistics Norway, UK’s Office for National Statistics, Statistics Sweden, Statistics Denmark, Statistics Greenland, Statistics Finland, Central Statistics Office of Ireland, fino ad arrivare ad United Nations Economic Commission for Europe (UNECE) e a Eurostat.

Ma vediamo come poter accedere ai dati pubblicati su dati.istat.it attraverso API

I dataset relativi ai macrodati statistici sono organizzati sotto forma di “cubi” multidimensionali (ipercubi). Pertanto, per poter costruire la “query string” necessaria a “sezionare” opportunamente il cubo e ad estrarre la porzione di dati desiderata è necessario fare qualche passaggio intermedio.

Innanzitutto partiamo dalle aree tematiche. Tutti i dati pubblicati su dati.istat.it sono organizzati in aree tematiche. Per ottenere le aree tematiche disponibili è possibile utilizzare il metodo getarea (http://apistat.istat.it/?q=getarea&lang=0). E’ possibile ottenere gli output in italiano o in inglese a seconda di come viene valorizzato “lang”.

lang=0 (italiano)

lang=1 (inglese)

Per ottenere la lista dei dataset pubblicati all’interno di una determinata area, è possibile utilizzare il metodo getdslist. Passandogli l’area tematica di riferimento si otterranno codici e descrizione di tutti i dataset pubblicati all’interno di quell’area. (http://apistat.istat.it/?q=getdslist&area=8&lang=0). In questo caso “8” è il codice dell’area tematica “Popolazione e Famiglie”.

Supponiamo ora di aver individuato il dataset a cui siamo interessati. Ad esempio

Ho necessità a questo punto di identificare le “dimensioni” che compongono il dataset. Per fare questo utilizzo il codice del dataset, in questo caso “DCIS_POPRES1” con il metodo getdim in questo modo: http://apistat.istat.it/?q=getdim&dataset=DCIS_POPRES1&lang=0

L’output sarà un file json contenente tutte le dimensioni previste per quel dataset con i relativi valori. A questo punto sarà importante individuare l’ordine con cui le dimensioni compaiono e i codici dei valori che si intende utilizzare per sezionare il cubo ed estrarre i dati.

Ad esempio, la sequenza 1,1,0,182,0,0 indica, da sinistra a destra:

1 = Italia,

1 = Popolazione al primo gennaio,

0 = Tutti i valori della dimensione “Sesso”

182 = Totale Età

0 = Tutti i valori della dimensione “Stato Civile”

0 = Tutti i valori della dimensione “Anno”

L’output Json-Stat viene restituito dal metodo getdatajson

http://apistat.istat.it/?q=getdatajson&dataset=DCIS_POPRES1&dim=1,1,0,182,0,0&lang=0

Se volete navigare i dati viene molto comodo utilizzare il Browser Json-Stat

http://json-stat.org/format/browser/?uri=http%3A%2F%2Fapistat.istat.it%2F%3Fq%3Dgetdatajson%26dataset%3DDCIS_POPRES1%26dim%3D1%2C1%2C0%2C182%2C0%2C0%26lang%3D0

Like what you read? Give Vincenzo Patruno a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.