[Python] idio[ma]ticità

simozack simozackml a gmail.com
Gio 23 Apr 2015 11:56:46 CEST


Il giorno 22 aprile 2015 23:58, Marco De Paoli <depaolim a gmail.com> ha
scritto:

>
>
> Il giorno 22 aprile 2015 13:58, Marco De Paoli <depaolim a gmail.com> ha
> scritto:
>
>>
>> Ecco un gist con il codice completo di test cases
>> https://gist.github.com/depaolim/1dfd6e3d3789047c36b1
>>
>
> ... ho pensato che mi farebbero comodo anche le ForeignKey con il caso di
> natural key
>
> e poi il tutto potrebbe essere messo in una app che implementa anche un
> command da usare da cli
>
> e poi sarebbe carino generalizzare le regole di rimappatura
> al momento le cerca nell'attributo "XLSX_2_FIELDS" del modello, si
> potrebbe permettere, che so...
> a) di passarle come argomento alla funzione load, ok, questo è facile
> b) di specificarle nei settings
> c) ma il più divertente è sicuramente la possibilità di leggerle da un
> particolare sheet dell'xlsx
>
> Il 3 permette, in pratica da Excel, di compilare un file con i dati e
> anche i meta-dati di rimappatura
>
> ... ma qua mi sa che sto finendo troppo OT: siamo su full-django. E per
> quello esiste django-it
>

Spero di non essermi perso troppe cose per strada nella lettura affrettata,
ma quando mi è capitato di fare questo tipo di attività ho usato una
namedtuple per mappare il foglio di Excel, in modo da slegarmi del tutto
dal titolo della colonna e in modo da non perdermi con gli indici delle
varie colonne. In pratica in questa maniera mi basta che il dato sia nella
colonna X e non che titolo abbia.

L'unico vincolo con questo approccio è che il numero di colonne deve essere
quello, altrimenti la namedtuple va a farsi benedire.

Per il database, io preferisco crearmi una lista con i parametri e darli in
pasto al cursor.executemany(), perché in questo modo la velocità di
inserimento/aggiornamento diventa quasi trascurabile (questo per circa
350.000 righe al colpo verso un db Oracle).

E si sposa completamente il concetto KISS.. :)

E spero di non avere sparato troppo sbagliato con la risposta... :D

Ciao,
Simone
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150423/639f1356/attachment.html>


Maggiori informazioni sulla lista Python