A tool to extract CIG data
Project description
CIG Data Extractor
Questo repository contiene uno script Python e un eseguibile standalone per l'estrazione automatizzata di dati relativi ai CIG (Codice Identificativo Gara) dal portale dati.anticorruzione.it dell'Autorità Nazionale Anticorruzione (ANAC).
Lo strumento è progettato per recuperare i dati dettagliati di un CIG specifico e fornirli in due formati JSON: una versione grezza (direttamente dall'API) e una versione "light" con i dati annidati già parsificati per una maggiore leggibilità e usabilità.
Caratteristiche
- Estrazione Dati CIG: Recupera informazioni complete per un CIG fornito.
- Output JSON Grezzo: Salva la risposta JSON originale dell'API (
<CIG_NUMBER>_raw.json). - Output JSON Light: Salva una versione elaborata del JSON, con i campi JSON annidati parsificati (
<CIG_NUMBER>.json). - Eseguibile Autoconsistente: Permette l'esecuzione dello strumento su sistemi senza un ambiente Python installato.
- Opzione di Output Personalizzata: Permette di specificare il percorso completo del file di output per il JSON light, con controllo di esistenza del file.
Requisiti
Per l'Eseguibile Autoconsistente
Nessun requisito aggiuntivo. L'eseguibile include tutte le dipendenze necessarie.
Per lo Script Python (se si esegue il .py)
- Python 3.x
- Libreria
requests
Per installare la libreria requests:
pip install requests
Utilizzo
Utilizzo dell'Eseguibile Autoconsistente
-
Scarica l'eseguibile dalla directory
dist/(o crealo seguendo le istruzioni di sviluppo). -
Apri un terminale e naviga nella directory dove si trova l'eseguibile.
-
Esegui il comando, sostituendo
<CIG_NUMBER>con il CIG desiderato. Puoi anche specificare il percorso completo del file di output per il JSON light con l'opzione-oo--output-path../get_cig_data_requests <CIG_NUMBER> [-o <OUTPUT_FILE_PATH>]
Esempi:
./get_cig_data_requests 918052266A ./get_cig_data_requests 918052266A -o /tmp/my_cig_data.json
Utilizzo dello Script Python
-
Assicurati di avere Python 3 e la libreria
requestsinstallati. -
Apri un terminale e naviga nella directory dove si trova lo script
get_cig_data_requests.py. -
Esegui il comando, sostituendo
<CIG_NUMBER>con il CIG desiderato. Puoi anche specificare il percorso completo del file di output per il JSON light con l'opzione-oo--output-path.python3 get_cig_data_requests.py <CIG_NUMBER> [-o <OUTPUT_FILE_PATH>]
Esempi:
python3 get_cig_data_requests.py 918052266A python3 get_cig_data_requests.py 918052266A -o /tmp/my_cig_data.json
Output
Dopo l'esecuzione, verranno creati due file JSON nella stessa directory (o un singolo file light al percorso specificato con -o):
<CIG_NUMBER>_raw.json: Contiene la risposta JSON grezza dall'API. Questo file viene salvato solo se non si specifica l'opzione-o.<CIG_NUMBER>.json: Contiene una versione elaborata del JSON, con i campi annidati parsificati per una maggiore leggibilità. Se l'opzione-oè specificata, questo file verrà salvato al percorso indicato.
Esempio per CIG 918052266A:
918052266A_raw.json918052266A.json
Ecco un estratto del file 918052266A.json (versione light):
{
"template": "N/A",
"stazione_appaltante": {
"CF_AMMINISTRAZIONE_APPALTANTE": "05678721001",
"CITTA": "ROMA",
"CODICE_AUSA": "0000225258",
"DENOMINAZIONE_AMMINISTRAZIONE_APPALTANTE": "AGENZIA NAZIONALE PER L ATTRAZIONE DEGLI INVESTIMENTI E LO SVILUPPO D IMPRESA S.P.A.",
"DENOMINAZIONE_CENTRO_COSTO": "CENTRALE DI COMMITTENZA",
"ID_CENTRO_COSTO": "33986B12-6680-4F38-AE62-C734375E3060",
"INDIRIZZO": "VIA CALABRIA 46",
"ISTAT_COMUNE": "012058091",
"REGIONE": "LAZIO",
"SEZIONE_REGIONALE": "SEZIONE REGIONALE CENTRALE"
},
"bando": {
"CIG": "918052266A",
"COD_ESITO": 1.0,
"COD_MODALITA_REALIZZAZIONE": "17",
"COD_STRUMENTO_SVOLGIMENTO": 5.0,
"COD_TIPO_SCELTA_CONTRAENTE": "1",
"CPV": [
{
"COD_CPV": "71315400-3",
"DESCRIZIONE_CPV": "SERVIZI DI COLLAUDO E VERIFICA DI EDIFICI",
"FLAG_PREVALENTE": 1
}
],
"DATA_COMUNICAZIONE_ESITO": "2023-07-07",
"DATA_SCADENZA_OFFERTA": "2022-05-26",
"DETTAGLIO_STATO": {
"DATA_ULTIMO_PERFEZIONAMENTO": "2022-05-24"
},
"DURATA_PREVISTA": 1220.0,
"ESITO": "AGGIUDICATA",
"FLAG_ESCLUSO": 0,
"FLAG_PREV_RIPETIZIONI": 0,
"FLAG_URGENZA": 0,
"IMPORTO_COMPLESSIVO_GARA": 23569628.59,
"IMPORTO_LOTTO": 3987864.4,
"IMPORTO_SICUREZZA": 0.0,
"LUOGO_NUTS": "ITF6",
"MODALITA_REALIZZAZIONE": "ACCORDO QUADRO",
"N_LOTTI_COMPONENTI": "7",
"NUMERO_GARA": "8519126",
"OGGETTO_GARA": "PROCEDURA DI GARA APERTA AI SENSI DEGLI ARTT. 54 E 60 DEL D.LGS. N. 50/2016, DA REALIZZARSI MEDIANTE PIATTAFORMA TELEMATICA, PER LA CONCLUSIONE DI ACCORDI QUADRO CON PIU’ OPERATORI ECONOMICI PER L’AFFIDAMENTO DI LAVORI (OG1 – OG11) E SERVIZI DI INGEGNERIA E ARCHITETTURA (E.21 – E.06 – S.03 – IA.02 – IA.04) PER LA NUOVA EDIFICAZIONE, RISTRUTTURAZIONE E RIQUALIFICAZIONE DI EDIFICI PUBBLICI RESIDENZIALI E NON.",
"OGGETTO_LOTTO": "ACCORDO QUADRO OG1 - OG11 - SUB - LOTTO PRESTAZIONALE 1 – SERVIZI DI DI COLLAUDO - LOTTO GEOGRAFICO: CALABRIA - SICILIA",
"OGGETTO_PRINCIPALE_CONTRATTO": "SERVIZI",
"SETTORE": "SETTORI ORDINARI",
"STATO": "ATTIVO",
"STRUMENTO_SVOLGIMENTO": "PROCEDURE SVOLTE ATTRAVERSO PIATTAFORME TELEMATICHE DI NEGOZIAZIONE ART.58",
"TIPO_CIG": "ORDINARIO",
"TIPO_SCELTA_CONTRAENTE": "PROCEDURA APERTA",
"FLAG_PNRR_PNC": 1,
"FLAG_QUOTE": "S"
}
}
Sviluppo
Creazione dell'Eseguibile Autoconsistente
Per creare l'eseguibile standalone, assicurati di avere PyInstaller installato:
pip install pyinstaller
Quindi, esegui il seguente comando nella directory principale del progetto:
pyinstaller --onefile get_cig_data_requests.py
Questo creerà l'eseguibile nella directory dist/.
Pulizia dei File di Build
PyInstaller crea delle directory temporanee (build/) e un file .spec. Puoi rimuoverli con:
rm -rf build/ get_cig_data_requests.spec
Licenza
Questo progetto è rilasciato sotto licenza MIT. Vedi il file LICENSE per maggiori dettagli. (Nota: il file LICENSE non è incluso in questo esempio, ma è una buona pratica aggiungerlo).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cig_data_extractor-0.2.4.tar.gz.
File metadata
- Download URL: cig_data_extractor-0.2.4.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
159f70366476d7e2d5de1718f440d7cdef5b0743a2642ffbfdba63f817642be2
|
|
| MD5 |
e6d04d19548b99851140ae4bfedf7f95
|
|
| BLAKE2b-256 |
bc2e7bc93c6eda092c69e57a1bbb4e963f0d485bc1ede9f602eaacfc30127ae9
|
File details
Details for the file cig_data_extractor-0.2.4-py3-none-any.whl.
File metadata
- Download URL: cig_data_extractor-0.2.4-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e49f49f52727cf2d1d31760e683e528c658f9f76982d4a22026b895fdc460ad5
|
|
| MD5 |
e4735c97f63a66f16ca5838d9a4228ee
|
|
| BLAKE2b-256 |
faf0a008012da96c8d1ba129780d7dd895137208a9b7adc9a9219ac84c8e1e01
|