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'