sqlalchemy ascii decode error
Verfasst: Mittwoch 31. Oktober 2012, 16:42
Hi,
Und zwar hab ich das problem dass beim parsen der einträge einer DB das ganz mit dem fehler
abbricht...
was seltsam ist, denn das defaultencoding von python ist laut sys.getdefaultencoding() "utf-8"
wenn ich aber nun diesen code ausführen möchte:
bricht das ganze mit folgender meldung ab:
EDIT:
Scheint als wäre das die lösung gewesen
Und zwar hab ich das problem dass beim parsen der einträge einer DB das ganz mit dem fehler
Code: Alles auswählen
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 67: ordinal not in range(128)
was seltsam ist, denn das defaultencoding von python ist laut sys.getdefaultencoding() "utf-8"
wenn ich aber nun diesen code ausführen möchte:
Code: Alles auswählen
from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import *
engine = create_engine('postgresql://admin@localhost/mediaserver', encoding='utf-8', convert_unicode=True, echo=True)
metadata = MetaData()
Base = declarative_base()
class Video(Base):
__tablename__ = 'video'
id = Column(Integer, primary_key=True)
path = Column(String)
duration = Column(Integer)
date = Column(Integer)
mdate = Column(Integer)
fs_uuid = Column(Integer)
fs_online = Column(Integer)
def __init__(self, path, duration, date, mdate):
self.path = path
self.duration = duration
self.date = date
self.mdate = mdate
def __repr__(self):
return u"<Video( {0} {1} {2} {3} )>".format(self.path, self.duration, self.date, self.mdate)
Base.metadata.create_all(engine)
Session = sessionmaker()
Session.configure(bind=engine)
session = Session()
result = (
session.query(Video)
.order_by(desc(Video.date))
.limit(5)
)
for videofile in result:
print u"{0}".format(videofile.path)
Code: Alles auswählen
File "pgsql.py", line 96, in <module>
for videofile in result:
File "build/bdist.linux-armv5tel/egg/sqlalchemy/orm/loading.py", line 64, in instances
File "build/bdist.linux-armv5tel/egg/sqlalchemy/engine/result.py", line 748, in fetchall
File "build/bdist.linux-armv5tel/egg/sqlalchemy/engine/result.py", line 715, in _fetchall_impl
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 67: ordinal not in range(128)
EDIT:
Scheint als wäre das die lösung gewesen
Code: Alles auswählen
client_encoding='utf-8'