Handle undecodable bytes in text columns

This commit is contained in:
Kovid Goyal 2013-07-22 12:20:52 +05:30
parent d1609037ab
commit 4f5764b1a8

View File

@ -52,10 +52,16 @@ class Table(object):
self.name, self.metadata = name, metadata self.name, self.metadata = name, metadata
self.sort_alpha = metadata.get('is_multiple', False) and metadata.get('display', {}).get('sort_alpha', False) self.sort_alpha = metadata.get('is_multiple', False) and metadata.get('display', {}).get('sort_alpha', False)
text = lambda x:x.decode('utf-8', 'replace') if isinstance(x, bytes) else x
# self.unserialize() maps values from the db to python objects # self.unserialize() maps values from the db to python objects
self.unserialize = \ self.unserialize = \
{ {
'datetime': _c_convert_timestamp, 'datetime': _c_convert_timestamp,
'text': text,
'comments': text,
'series': text,
'enumeration': text,
'bool': bool 'bool': bool
}.get( }.get(
metadata['datatype'], lambda x: x) metadata['datatype'], lambda x: x)