[Python] insert à in db sqlite3
Vittorio Zuccala'
vittorio.zuccala a gmail.com
Mar 31 Ago 2010 17:23:00 CEST
Buongiorno a tutti,
è sicuramente una cosa banale ma sto sbattendo la testa sul seguente
problema:
* dal nostro gestionale recupero un file CSV con lettere accentate,
apostrofi e quant'altro.
* devo importare il tutto in un file sqlite
Utilizzo il seguente codice (è una prova quindi non badate alle finezze):
*import sqlite3
import os
import csv
con=sqlite3.connect('dbe.sqlite')
cur=con.cursor()
try:
cur.execute('DROP TABLE cqrep000f')
except:
pass
cur.execute('''
CREATE TABLE "cqrep000f" (
# segue una cinquantina di campi
)
''')
con.commit()
f = open('cqrep.csv')
csv_reader = csv.reader(f, delimiter=';', quotechar = '"')
for row in csv_reader:
l=len(row)
for i in range(l):
row[i]=unicode(row[i])
cur.execute('INSERT INTO cqrep000f VALUES( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', row)
con.commit()
cur.close()
con.close(*)
Tutto funziona finchè non incontra lettere con accenti, apostrofi o cose
strane.
L'errore che mi restituisce è il seguente:
*"row[i]=unicode(row[i])
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 4:
ordinal not in range(128)"
*
Come posso ovviare il problema?
Grazie per gli aiuti.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20100831/1d138137/attachment.htm
Maggiori informazioni sulla lista
Python