Python · CSV · Validazione degli IBAN
Validare gli IBAN di un file CSV con Python
Controlla un elenco IBAN esportato e crea un nuovo file CSV con lo esito della verifica, il nome della banca e il BIC. Lo script scaricabile utilizza la libreria standard Python, preserva l'ordine delle righe e controlla gli IBAN duplicati solo una volta per esecuzione.
Questo è un flusso della riga di comando locale per Python versione 3.10 o successiva. Ogni IBAN diverso e non vuoto viene inviato all'API IBAN-Test. Hai bisogno del tuo token API e di una quota di richieste sufficiente.
Scarica lo script per il controllo CSV
Il file ZIP contiene iban_csv.py, un CSV di esempio, un README e test automatizzati. Non sono richiesti pacchetti Python aggiuntivi.
Stato dei test: Nove test automatizzati locali riguardano la costruzione delle richieste, le righe duplicate e vuote, i risultati del controllo, la protezione delle quote, la gestione degli errori, il mascheramento CSV e la conservazione dei file esistenti. Per questo esempio non è stato eseguito un passaggio autenticato rispetto all'API Live.
1. Preparare il file di input
Esporta i tuoi dati di origine come CSV UTF-8. Utilizza l'intestazione di colonna in lettere minuscole iban e facoltativamente una colonna reference per mappare i risultati ai tuoi record. Lo script include solo queste due colonne di input nell'output; le altre colonne non vengono prese in considerazione. Conserva l'esportazione originale.
reference,iban
example-valid,DE89 3704 0044 0532 0130 00
example-duplicate,de89370400440532013000
example-invalid-checksum,DE00370400440532013000
example-empty,
Questi sono campioni di prova, non istruzioni di pagamento. Le prime due righe restituiscono lo stesso IBAN normalizzato. La riga vuota ottiene MISSING senza una richiesta API. Salva IBAN e riferimenti come testo durante l'esportazione da un foglio di calcolo.
2. Effettuare un primo piccolo controllo
Scompatta il pacchetto, apri un terminale nella sua directory e controlla se Python è disponibile:
python3 --version
python3 iban_csv.py sample.csv results.csv
Su Windows, utilizzare py -3 invece di python3 se necessario, a seconda dell'installazione. Il programma interrogherà il tuo token API senza visualizzare i caratteri che hai inserito. Puoi trovare il token nella panoramica API del tuo account IBAN-Test. Non è scritto nel file CSV.
Il limite predefinito è 10 IBAN diversi e non vuoti. Lo script li conta prima della prima richiesta e si ferma quando vengono superati. L'esempio precedente richiede due richieste API se entrambe vengono completate regolarmente.
In caso di successo, il programma restituisce il numero di righe e richieste. Crea il file di output solo quando è presente un risultato di controllo utilizzabile per ciascun IBAN richiesto. Pertanto, un errore API non lascia un CSV di risultati parzialmente verificato.
3. Leggi il problema
| Colonna | Significato |
|---|---|
reference, iban | Il tuo riferimento e input originali, con protezione tramite formula tabellare, se necessario. |
iban_normalized | IBAN in maiuscolo senza spazi. |
status | VALID, INVALID o MISSING. |
code, message | Codice risultato API e messaggio esplicativo. Per le decisioni automatizzate, utilizza il codice, non il testo del messaggio. |
bank, bic | Coordinate bancarie disponibili; I campi possono essere vuoti. |
checked_at_utc | Timestamp UTC registrato dopo la risposta per questo IBAN. I duplicati condividono il risultato e il timestamp; le voci vuote non hanno timestamp. |
VALID richiede i codici 2100 e error: false. I codici 3100, 3101 e 3102 con error: true danno come risultato INVALID. Errore di autenticazione, quota esaurita, errori del server e risposte impreviste interrompono il programma con un codice di uscita diverso da zero.
4. Elaborare altre esportazioni ed elenchi più grandi
Per esportare con un punto e virgola, selezionare esplicitamente il separatore. Si applica all'input e all'output:
python3 iban_csv.py customers.csv checked-customers.csv --delimiter ";"
Controlla la quota API rimanente e quindi aumenta il limite di richieste per esecuzione, se necessario:
python3 iban_csv.py customers.csv checked-customers.csv --max-requests 100
Le singole richieste vengono inviate una dopo l'altra; non è un endpoint di raccolta REST. Un'esecuzione non riuscita potrebbe aver già consumato richieste. Un riavvio controlla nuovamente l'elenco: la rimozione dei duplicati si applica all'interno di un'esecuzione, non a più esecuzioni. Questo modello non ha né ripetizioni automatiche né stati intermedi ripristinabili.
Per le esecuzioni non presidiate, fornire IBAN_TEST_API_TOKEN tramite la configurazione dei segreti del sistema di lavoro. Non archiviare token reali nel controllo della versione né passarli come argomento della riga di comando. Per le esecuzioni manuali, l'immissione interattiva nascosta è la più semplice.
Problemi comuni
- “CSV must have an iban header”: Controlla l'ortografia esatta dell'intestazione della colonna, della codifica e del separatore. XLSX non è CSV.
- “Choose a new output filename”: Lo script non sovrascrive i file esistenti o il relativo input. Utilizzare un nuovo nome file per ogni esecuzione.
- HTTP 401 o codice API 4002: Controlla il tuo gettone. Non riprovare continuamente le autenticazioni non riuscite.
- Codice API 4003: La quota è esaurita. Interrompi il lavoro e controlla la tua quota prima di riavviarlo.
- Errore di rete o JSON non valido: Il flusso si ferma. Verifica la connessione e la disponibilità delle API; Un errore di trasmissione non dice nulla sulla validità dell'IBAN.
Proteggi i dati esportati
All'API viene inviato solo l'IBAN; il riferimento rimane nel flusso locale. Conservare i file di input e di output in una posizione privata appropriata. Lo script prefissa i valori della tabella potenzialmente eseguibili con un apostrofo per ridurre il rischio di inserimento di formule. Ciò può modificare la rappresentazione letterale di un riferimento come =1+1. Conserva l'esportazione originale per una corrispondenza accurata.
Un IBAN valido non dimostra l'esistenza del conto, la proprietà, il saldo del conto o il successo del pagamento. Le informazioni sulle singole procedure SEPA si trovano nelle istruzioni per lo Partecipazione alla SEPA di una banca. Lo istruzioni n8n è adatto per un processo visivo.
Esegui i test offline inclusi
python3 -m unittest -vI test utilizzano risposte controllate e non consumano richieste API. Esaminano le decisioni del programma, non il tuo token o le informazioni bancarie attuali.
Riferimenti: documentazione dell’API IBAN-Test, Riferimento CSV Python, Riferimento Python sulle richieste HTTP.
