Форум сайта python.su
Всем доброго! Дабы не начинать новую тему решил оставить свой пост в данной теме. Есть код:
# -*- coding: cp1251 -*-
import sys, time
import sqlite3 as db
ifile = open("invent.txt", 'r')
c = db.connect(database=r"C:\pythonprog\txt\goodsinvent.s3db")
cu = c.cursor()
#cu.execute("DELETE FROM goods")
for line in ifile.readlines():
f = line.split('\t').decode('utf-8')
try:
cu.execute("INSERT INTO goods VALUES (?, ?, ?, ?, ?)", (f[0], f[2], f[3], f[4], f[6]))
except db.DatabaseError, x:
print "Ошибка: ", x
cu.execute("SELECT * FROM goods ORDER BY plu ASC")
c.commit()
c.close()
ifile.close()
Traceback (most recent call last):
File "C:\pythonprog\txt\filesort.py", line 14, in <module>
cu.execute("SELECT * FROM goods ORDER BY plu ASC")
OperationalError: Could not decode to UTF-8 column 'ProdGoup' with text 'Продуктовые товары
Офлайн
Попробуй так:
...
f = line.split('\t') #.decode('utf-8')
...
c.commit()
cu.execute("SELECT * FROM goods ORDER BY plu ASC")
#c.commit()
Офлайн
Спасибо bw, но так не работает. Порылся по иностранным сайтам нашел решение, вот кусок кода
c.commit()
c.text_factory = str
cu.execute("SELECT * FROM goods ORDER BY plu ASC")
Офлайн
Кстати, чтобы не нужно было перекодировать каждую строчку из файла, можно сделать так:
import codecs
ifile = codecs.open("invent.txt", 'r','cp1251') # указать кодировку файла
Офлайн
alleoОчень спасибо!!! Помогло! )))import codecs
ifile = codecs.open("invent.txt", 'r','cp1251') # указать кодировку файла
Офлайн