italia / dati.gov.it

dati.gov.it: il sito degli opendata italiani
http://dati.gov.it
Creative Commons Zero v1.0 Universal
53 stars 4 forks source link

API: current_package_list_with_resources sembra funzionare male #31

Open aborruso opened 5 years ago

aborruso commented 5 years ago

Buongiorno, mi è utile avere i dettagli dei vari dataset e quindi uso current_package_list_with_resources. Al momento da 0 a 22600 (i package per ora sono < 22700), di 100 in 100 lancio (cambiando offset)

https://www.dati.gov.it/api/3/action/current_package_list_with_resources?limit=100&offset=0

In output quindi 226 json. Se da questi estraggo la lista dei name dei package (o degli id) ho due evidenze:

È come se questo elenco di 100 in 100 fosse generato a runtime con dei criteri variabili e che quindi un item presente in 0-99, possa essere presente anche in 3600-3699.

Magari sbaglio qualcosa in termini di approccio. Se no, la cosa è da investigare e eventualmente risolvere.

Grazie

giorgialodi commented 5 years ago

Andrea, hai un esempio a portata di mano di duplicati, così facciamo ulteriori verifiche?

aborruso commented 5 years ago

Giorgia,

hai un esempio a portata di mano di duplicati, così facciamo ulteriori verifiche?

è variabile. Se faccio un download adesso, ho duplicati e dataset mancanti, diversi da quelli che avrei tra 8 ore. Ed è un altro dei motivi per il quale mi sembra che ci sia da fare un check.

Per questo secondo me è meglio che facciate voi il test.

Il codice che uso è quello di sotto

cartella="/miacartella"
mkdir -p "$cartella"/dati

# scarica la lista dei dataset
curl -sL https://www.dati.gov.it/api/3/action/package_list | jq . >"$cartella"/lista.json
# estrai lista dei package
jq -r '.result[]' "$cartella"/lista.json >"$cartella"/lista_tmp.txt

# conta il numero dei package, in modo da impostare il loop per richiedere i dati di dettaglio dei dataset
numeroRisorse=$(cat "$cartella"/lista_tmp.txt | wc -l)
limiteQuery=$(echo "$numeroRisorse/100*100" | bc)

# scarica i dettagli sui dataset

# crea un file con la lista degli step delle query da fare
for i in $(seq 0 100 $limiteQuery); do echo $i >>"$cartella"/dati/lista.txt; done
# esegui la query
parallel <"$cartella"/dati/lista.txt "curl -sL \"https://www.dati.gov.it/api/3/action/current_package_list_with_resources?limit=100&offset={}\" > $cartella/dati/{}.json"

Poi con cat "$cartella"/*.json | jq '.result[].name' | sort >./listaName.txt si può estrarre l'elenco e verificare duplicati e differenze con la package list semplice.

Grazie

aborruso commented 5 years ago

@giorgialodi questo un insieme di JSON di stamattina: json.zip

giorgialodi commented 5 years ago

Grazie Andrea, per questi dati più puntuali. La verifica da parte di dati.gov.it è doverosa.

giorgialodi commented 5 years ago

Ciao Andrea,

il team di coordinamento e sviluppo di dati.gov.it sta facendo delle verifiche anche per valutare, nel caso, la migliore soluzione da applicare.

aborruso commented 5 years ago

Ciao Giorgia,

il team di coordinamento e sviluppo di dati.gov.it sta facendo delle verifiche anche per valutare, nel caso, la migliore soluzione da applicare.

non ho capito se il team di sviluppo sta verificando se il problema c'è o se sta verificando come risolverlo.

Grazie sempre

giorgialodi commented 5 years ago

Entrambe le cose :) Prima di tutto sta verificando se effettivamente l problema c'è e qualora la verifica sia positiva valuteranno quale soluzione applicare e in quali tempi.

aborruso commented 5 years ago

Ok, grazie quindi potrebbe essere una mia errata valutazione. Resto in attesa.

Grazie

giorgialodi commented 5 years ago

Non è detto Andrea, potrebbe anche essere un bug, tipo quello già indicato in qualche issue fa. Ma nel tal caso devono verificare per bene e capire come affrontarlo.

aborruso commented 5 years ago

Buon pomeriggio, ci sono aggiornamenti sulla cosa?

Grazie