Я столкнулся с проблемой. Здесь у меня есть эта модель в моей SqlAlchemy
class ConfigArchive(Base):
__tablename__ = 'config_archives'
cluster_id = Column(String(SIZE_TEXT),
ForeignKey('clusters.cluster_id'),
primary_key=True,
index=True,
unique=True,
nullable=False)
config_blob = Column(Binary,
nullable=False)
Тогда я получаю свои двоичные данные, используя фильтры как:
config_archive = self.session.query(ConfigArchive) \
.filter(ConfigArchive.cluster_id == cluster_id).one_or_none()
И тут я получил ошибку вроде:
...
Файл
".Venv / Библиотека / python2.7 / сайт-пакеты / SQLAlchemy / ОРМ / query.py",
строка 2924, в one_or_none
ret = list (self) Файл ".venv / lib / python2.7 / site-packages / sqlalchemy / orm / query.py",
строка 2995, в iter
вернуть файл self._execute_and_instances (context) Файл ".venv / lib / python2.7 / site-packages / sqlalchemy / orm / query.py",
строка 3018, в _execute_and_instances
result = conn.execute (querycontext.statement, self._params) Файл ".venv / lib / python2.7 / site-packages / sqlalchemy / engine / base.py",
строка 948, в исполнении
вернуть meta (self, multiparams, params) Файл ".venv / lib / python2.7 / site-packages / sqlalchemy / sql / elements.py",
строка 269, в _execute_on_connection
вернуть файл connection._execute_clauseelement (self, multiparams, params) Файл
".Venv / Lib / python2.7 / сайт-пакеты / SQLAlchemy / двигатель / base.py",
строка 1060, в _execute_clauseelement
compiled_sql, файл дистиллированных_парамов ".venv / lib / python2.7 / site-packages / sqlalchemy / engine / base.py",
строка 1200, в _execute_context
контекст) Файл ".venv / lib / python2.7 / site-packages / sqlalchemy / engine / base.py",
строка 1416, в _handle_dbapi_exception
util.reraise (* exc_info) Файл ".venv / lib / python2.7 / site-packages / sqlalchemy / engine / base.py",
строка 1193, в _execute_context
контекст) Файл ".venv / lib / python2.7 / site-packages / sqlalchemy / engine / default.py",
строка 509, в do_execute
cursor.execute (оператор, параметры) Файл ".venv / lib / python2.7 / site-packages / mysql / connector / cursor_cext.py",
строка 272, в исполнении
self._handle_result (result) Файл ".venv / lib / python2.7 / site-packages / mysql / connector / cursor_cext.py",
строка 163, в _handle_result
self._handle_resultset () Файл ".venv / lib / python2.7 / site-packages / mysql / connector / cursor_cext.py",
строка 651, в _handle_resultset
self._rows = self._cnx.get_rows () [0] Файл ".venv / lib / python2.7 / site-packages / mysql / connector / connection_cext.py",
строка 288, в get_rows
_eof = self.fetch_eof_columns () ['eof'] Файл ".venv / lib / python2.7 / site-packages / mysql / connector / connection_cext.py",
строка 349, в fetch_eof_columns
для полей в полях: файл ".venv / lib / python2.7 / encodings / utf_8.py",
строка 16, в декодировании
return codecs.utf_8_decode (input, errors, True) UnicodeDecodeError: кодек «utf8» не может декодировать байт 0x8b в позиции 1:
неверный стартовый байт
Я пытаюсь декодировать свои данные и снова кодировать в utf-8, но это не работает. Также я установил charset = utf8 для БД, и это не могло помочь мне
Я понятия не имею, как сказать SQLAlchemy для декодирования моих двоичных данных с помощью кодировки 'latin-1'. Потому что, я думаю, это работает, потому что я пытаюсь сделать это, пока устраняю ошибки в исходных текстах python в
Библиотека / python2.7 / Кодировки / utf_8.py
и успешно расшифровал мои двоичные данные
Так что, пожалуйста, если кто-то что-то знает об этом, изложите свою идею. Спасибо