[opendatasicilia] realizzare dataset partendo dai file xls pubblicati nella sezione Amministrazione Trasparente

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[opendatasicilia] realizzare dataset partendo dai file xls pubblicati nella sezione Amministrazione Trasparente

pablo persico

Partendo dallo spunto creato da due precedenti richieste, per Spesapubblica e per OpenCup, i cui script consentono di scaricare dati dai due portali Spesapubblica e Opencup, filtrarli e trasformarli, è nata l'idea di fare una cosa simile ma con i file pubblicati in formato tabellare sulla sezione amministrazione trasparente del portale istituzionale della Città Metropolitana di Napoli.

Il punto di partenza è un vecchio server Windows, dal quale attraverso uno script richiamo il file (generalmente un xls, xlsx o un ods) e lo trasformo in csv e json (proprio come facevo con spesapubblica e opencup)

curl http://192.168.x.x/assenze2018.xlsx -o "$cartella"/assenze2018.xlsx

 

lo trasformo in csv 

<"$cartella"/assenze2018.xlsx in2csv -I -f xlsx >"$cartella"/assenze2018.csv

 

nel caso del file ods (l'equivalente dell'excel per open office) utilizzo 

soffice --headless --convert-to csv assenze2018.ods

 

trasformo il csv in json 

<"$cartella"/assenze2018.csv csvjson | jq . >"$cartella"/assenze2018.json

 

fin qui tutto bene ma controllando i files ho notato che hanno un numero lunghissimo di cifre decimali, come posso accorciarle almeno a due, tenendo conto che si tratta di percentuali? 

 

Ho anche provato in questo modo (sempre attingendo dal vecchio script di opencup)  

<"$cartella"/assenze2018.csv csvformat -d "|" -e "ISO-8859-15" >"$cartella"/assenze2018.csv

 

ma non funziona, dov'è che sbaglio? 

Grazie

--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Gruppo Telegram: https://t.me/opendatasicilia
Slack: http://opendatasicilia.it/slack/
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a [hidden email].
Per postare in questo gruppo, invia un'email a [hidden email].
Visita questo gruppo all'indirizzo https://groups.google.com/group/opendatasicilia.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/70bd2ea1-b382-4442-b39d-099b76ebe54a%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

[opendatasicilia] Re: realizzare dataset partendo dai file xls pubblicati nella sezione Amministrazione Trasparente

Andrea Borruso
Administrator
Ciao Pablo,
alleghi per favore il file di input e l'output che ottieni?

Grazie

--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Gruppo Telegram: https://t.me/opendatasicilia
Slack: http://opendatasicilia.it/slack/
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a [hidden email].
Per postare in questo gruppo, invia un'email a [hidden email].
Visita questo gruppo all'indirizzo https://groups.google.com/group/opendatasicilia.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/7970ad1c-d2ee-490c-97ef-245fb940af34%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

[opendatasicilia] Re: realizzare dataset partendo dai file xls pubblicati nella sezione Amministrazione Trasparente

pablo persico
Eccoli! 
Grazie

Il giorno lunedì 2 luglio 2018 09:42:12 UTC+2, Andrea Borruso ha scritto:
Ciao Pablo,
alleghi per favore il file di input e l'output che ottieni?

Grazie

--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Gruppo Telegram: https://t.me/opendatasicilia
Slack: http://opendatasicilia.it/slack/
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a [hidden email].
Per postare in questo gruppo, invia un'email a [hidden email].
Visita questo gruppo all'indirizzo https://groups.google.com/group/opendatasicilia.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/f779fda7-e3c3-4f1d-a0a6-981e0f2e634a%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.

assenze2018.csv (4K) Download Attachment
assenze2018.json (18K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [opendatasicilia] realizzare dataset partendo dai file xls pubblicati nella sezione Amministrazione Trasparente

Andrea Borruso
Administrator
In reply to this post by pablo persico

Ciao Pablo

Ho anche provato in questo modo (sempre attingendo dal vecchio script di opencup)  

<"$cartella"/assenze2018.csv csvformat -d "|" -e "ISO-8859-15" >"$cartella"/assenze2018.csv

 

questo comando serve a fare in modo che l’output in CSV sia separato da |. Che qui non serve.
Inoltre qui il file sorgente non ha encoding “ISO-8859-15” .
Rimuoverei la riga.

Per i decimali, in questo caso puoi usare semplicemente sed e fare un trova e sostituisci che cerca numeri con struttura 0.00… e li trasforma in 0.00, via espressione regolare.

Lo script potrebbe essere

cartella="/iltuoperorso/dati

<"$cartella"/assenze2018.xlsx in2csv -I -f xlsx | sed -r 's/([0-9]+)(\.)([0-9]{2})([0-9]+)/\1\2\3/g' >"$cartella"/assenze2018.csv

<"$cartella"/assenze2018.csv csvjson | jq . >"$cartella"/assenze2018.json

Qui il ciao mondo della regex https://regex101.com/r/QTvYhe/1

L’output è qualcosa come

[
  {
    "Direzione": "Segretario Generale",
    "Gennaio % di presenza": 79.56,
    "Gennaio % di assenza": 20.43,
    "Febbraio % di presenza": 86.5,
    "Febbraio % di assenza": 13.5,
    "Marzo % di presenza": 88.18,
    "Marzo % di assenza": 11.81,
    "Aprile % di presenza": 83.68,
    "Aprile % di assenza": 16.31,
    "Maggio % di presenza": null,
    "Maggio % di assenza": null,
    "Giugno % di presenza": null,
    "Giugno % di assenza": null
  }
]

Facci sapere

--
___________________

Andrea Borruso
website: https://medium.com/tantotanto
38° 7' 48" N, 13° 21' 9" E, EPSG:4326
___________________

"cercare e saper riconoscere chi e cosa,
 in mezzo all’inferno, non è inferno, 
e farlo durare, e dargli spazio"

Italo Calvino

--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Gruppo Telegram: https://t.me/opendatasicilia
Slack: http://opendatasicilia.it/slack/
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a [hidden email].
Per postare in questo gruppo, invia un'email a [hidden email].
Visita questo gruppo all'indirizzo https://groups.google.com/group/opendatasicilia.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/CAHEdGZMhJWztBSqZyQmAe1RD8h%2B%2BOuiVTcdxXj0UZMBK1iYHUg%40mail.gmail.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [opendatasicilia] realizzare dataset partendo dai file xls pubblicati nella sezione Amministrazione Trasparente

pablo persico
Provato e naturalmente funziona alla perfezione!  
Tutto chiaro anche riguardo il comando che hai utilizzato.
Naturalmente, da solo non sarei mai riuscito nemmeno ad immaginarlo così! 
Grazie

Il giorno lunedì 2 luglio 2018 10:20:45 UTC+2, Andrea Borruso ha scritto:

Ciao Pablo

Ho anche provato in questo modo (sempre attingendo dal vecchio script di opencup)  

<"$cartella"/assenze2018.csv csvformat -d "|" -e "ISO-8859-15" >"$cartella"/assenze2018.csv

 

questo comando serve a fare in modo che l’output in CSV sia separato da |. Che qui non serve.
Inoltre qui il file sorgente non ha encoding “ISO-8859-15” .
Rimuoverei la riga.

Per i decimali, in questo caso puoi usare semplicemente sed e fare un trova e sostituisci che cerca numeri con struttura 0.00… e li trasforma in 0.00, via espressione regolare.

Lo script potrebbe essere

cartella="/iltuoperorso/dati

<"$cartella"/assenze2018.xlsx in2csv -I -f xlsx | sed -r 's/([0-9]+)(\.)([0-9]{2})([0-9]+)/\1\2\3/g' >"$cartella"/assenze2018.csv

<"$cartella"/assenze2018.csv csvjson | jq . >"$cartella"/assenze2018.json

Qui il ciao mondo della regex <a href="https://regex101.com/r/QTvYhe/1" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fregex101.com%2Fr%2FQTvYhe%2F1\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJNf2KTQqTJ0ue7__jRF8FZVDWBA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fregex101.com%2Fr%2FQTvYhe%2F1\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHJNf2KTQqTJ0ue7__jRF8FZVDWBA&#39;;return true;">https://regex101.com/r/QTvYhe/1

L’output è qualcosa come

[
  {
    "Direzione": "Segretario Generale",
    "Gennaio % di presenza": 79.56,
    "Gennaio % di assenza": 20.43,
    "Febbraio % di presenza": 86.5,
    "Febbraio % di assenza": 13.5,
    "Marzo % di presenza": 88.18,
    "Marzo % di assenza": 11.81,
    "Aprile % di presenza": 83.68,
    "Aprile % di assenza": 16.31,
    "Maggio % di presenza": null,
    "Maggio % di assenza": null,
    "Giugno % di presenza": null,
    "Giugno % di assenza": null
  }
]

Facci sapere

--
___________________

Andrea Borruso
website: <a href="https://medium.com/tantotanto" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fmedium.com%2Ftantotanto\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGZVxcQ3b_26Tt_tclvazQirNPHSA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fmedium.com%2Ftantotanto\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGZVxcQ3b_26Tt_tclvazQirNPHSA&#39;;return true;">https://medium.com/tantotanto
38° 7' 48" N, 13° 21' 9" E, EPSG:4326
___________________

"cercare e saper riconoscere chi e cosa,
 in mezzo all’inferno, non è inferno, 
e farlo durare, e dargli spazio"

Italo Calvino

--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Gruppo Telegram: https://t.me/opendatasicilia
Slack: http://opendatasicilia.it/slack/
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a [hidden email].
Per postare in questo gruppo, invia un'email a [hidden email].
Visita questo gruppo all'indirizzo https://groups.google.com/group/opendatasicilia.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/cf5083cf-c3e0-445a-a2e3-fd08783199cc%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.