Last active
May 3, 2018 05:34
-
-
Save pablopers/a10e86987b2968f7460b21616842106f to your computer and use it in GitHub Desktop.
Uno script bash di esempio, che scarica i dati da http://soldipubblici.gov.it/ per la Città Metropolitana di Napoli e li trasforma in CSV e JSON. Costruito a partire da http://bit.ly/2FkRaWo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
### Info ### | |
# i file correttamente importati e filtrati sono 01_cmna.csv e 01_cmna.json # | |
### info ### | |
### requisiti ### | |
# httpie | |
# jq | |
# csvkit | |
### requisiti ### | |
set -x | |
### leggimi ### | |
# In questo esempio, a partire dal codice ente del Città Metropolitana di Napoli (`800000720'), vengono scaricati i dati | |
# sulle spese fatte da questa PA. | |
### leggimi ### | |
# scegliere e impostare la cartella di output # | |
cartella="/var/www/html/soldipubblici" | |
# inserire codice dell'ente # | |
codente="800000720" | |
# inserire il nome dell'ente # | |
namente="Citta+metropolitana+di+napoli" | |
/usr/bin/http --ignore-stdin -f POST http://soldipubblici.gov.it/it/ricerca x-requested-with:XMLHttpRequest codicecomparto='PRO' codiceente=''"$codente"'' chi=''"$namente"'' | \ | |
/usr/bin/jq '[.data|.[]|{codice_siope,descrizione_codice,descrizione_ente,idtable,cod_ente,anno,periodo,codice_gestionale, | |
imp_uscite_att:(if .imp_uscite_att == null then null else .imp_uscite_att|tonumber/100 end), | |
data_di_fine_validita, | |
importo_2013:(if .importo_2013 == null then null else .importo_2013|tonumber/100 end), | |
importo_2014:(if .importo_2014 == null then null else .importo_2014|tonumber/100 end), | |
importo_2015:(if .importo_2015 == null then null else .importo_2015|tonumber/100 end), | |
importo_2016:(if .importo_2016 == null then null else .importo_2016|tonumber/100 end), | |
importo_2017:(if .importo_2017 == null then null else .importo_2017|tonumber/100 end)}]' | \ | |
# trasformiamo il json importato in csv # | |
tee "$cartella"/00_cmna.json | /usr/bin/in2csv -I -f json >"$cartella"/00_cmna.csv | |
# filtriamo il csv in modo che elimini gli importi non valorizzati # | |
<"$cartella"/00_cmna.csv csvgrep -c "imp_uscite_att,importo_2013,importo_2014,importo_2015,importo_2016,importo_2017" -r "^$" -i >"$cartella"/01_cmna.csv | |
# trasformiamo il csv filtrato in json # | |
<"$cartella"/01_"cmna".csv csvjson -I | jq . >"$cartella"/01_"cmna".json |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment