Buongiorno a tutti,<br>è sicuramente una cosa banale ma sto sbattendo la testa sul seguente problema:<br><br>* dal nostro gestionale recupero un file CSV con lettere accentate, apostrofi e quant'altro.<br>* devo importare il tutto in un file sqlite<br>
<br>Utilizzo il seguente codice (è una prova quindi non badate alle finezze):<br><br><div style="margin-left: 40px;"><i>import sqlite3<br>import os<br>import csv<br><br>con=sqlite3.connect('dbe.sqlite')<br>cur=con.cursor()<br>
<br>try:<br> cur.execute('DROP TABLE cqrep000f')<br>except:<br> pass<br><br>cur.execute('''<br> CREATE TABLE "cqrep000f" (<br> # segue una cinquantina di campi<br> )<br>
''')<br>con.commit()<br><br>f = open('cqrep.csv')<br><br>csv_reader = csv.reader(f, delimiter=';', quotechar = '"')<br><br>for row in csv_reader:<br> l=len(row)<br> for i in range(l):<br>
row[i]=unicode(row[i])<br><br> cur.execute('INSERT INTO cqrep000f VALUES( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', row)<br>
con.commit()<br><br>cur.close()<br>con.close(</i>)<br><br></div>Tutto funziona finchè non incontra lettere con accenti, apostrofi o cose strane.<br>L'errore che mi restituisce è il seguente:<br><br><div style="margin-left: 40px;">
<i>"row[i]=unicode(row[i])<br>UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 4: ordinal not in range(128)"<br></i></div><br>Come posso ovviare il problema?<br>Grazie per gli aiuti.<br>