[Python] delimitatori testo in sqlite

Vittorio Zuccala' vittorio.zuccala a gmail.com
Ven 5 Nov 2010 09:44:41 CET


Adoro sqlite soprattutto perchè ti permette di fare lavori semplici in modo
molto veloce!
Ad ogni modo...
Puoi fornirci il codice che utilizzi?
Personalmente non ho trovato questo problema nell'inserimento di dati.
Ti riporto parte di mio codice per leggere un CSV e riportarlo su un db
sqlite: magari può esserti utile.
Occhio: magari devi fare un decode come ti segnalo nel codice

csv_reader = csv.reader(filecsv, delimiter=';', quotechar = '"')

        campi=string.split(cnf['tabelle'][i],"\n")
        for j in range(len(campi)):
            campo = re.search('"(.+)".+', campi[j])
            if campo:
                campi[j]=campo.group(1)
        campi.pop(0)  # Elimina il nome della tabella dai campi
        campi.pop(-1)  # Elimina la parentesi finale dai campi


        print "Riempio la tabella %s" % i
        k=0
        p=1
        inserisci="INSERT INTO %s VALUES(" % i
        for row in csv_reader:
            l=len(row)
            for m in range(l):
                row[m] = row[m].decode('latin1')

            if k == 0:    # Controlla che i campi della tabella siano uguali
a quelli del CSV!!!!!!!!!!!
                for c in range(len(row)):
                    if row[c] == campi[c]:
                        inserisci = "%s %s" % (inserisci,"?, ")
                    else:
                        print "DEVI CAMBIARE LA DEFINIZIONE IN
CONFIGURAZIONE DI CREAZIONE TABELLA %s" % row[c]
            else:
                dimensione=len(inserisci)-2
                inserisci = inserisci[0:dimensione] # Inserendo "?, "
cancello l'ultima occorrenza di ", "
                inserisci = "%s %s" % (inserisci, ")")
                cur.execute(inserisci,row)
                if k==300:
                    print "Ho finito di aggiungere %d record" % (k*p)
                    p=p+1
                    k=1
            k=k+1

        con.commit()



Il giorno 05 novembre 2010 09:33, Massimo Capanni <massimo.capanni a gmail.com
> ha scritto:

> Buongiorno,
>
> forse e' una sciocchezza ma faccio lo stesso questa domanda:
> sto cercando di implementare un semplice database con Sqlite,
> e sto facendo alcune prove a mano direttamente con Sqlite stesso.
>
> Il database di prova contiene una tabella del genere:
>
> pippo (a integer primary key autoincrement, b text, c text);
>
> Cerco di inserire del testo a caso da qualche testo ma, se
> nella copia sono presenti doppi apici o singoli apici Sqlite
> mi comunica che non è correttamente identato. Secondo
> voi dovrei implementare un controllo dell'identazione degli
> apici prima dell'inserimento, con una funzione Python,
> oppure esiste una funzione che automaticamente risolve
> questo problema durante l'input?
>
> a presto,
>
> massimo
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20101105/e19be75a/attachment.htm 


Maggiori informazioni sulla lista Python