sqlite3.ProgrammingError: Sie dürfen keine 8-Bit-Bytestrings verwenden, es sei denn, Sie verwenden eine text_factory, die 8-Bit-Bytestrings interpretieren kann.

Mit SQLite3 in Python versuche ich, eine komprimierte Version eines UTF-8-HTML-Code-Snippets zu speichern.

Code sieht so aus:

...
c = connection.cursor()
c.execute('create table blah (cid integer primary key,html blob)')
...
c.execute('insert or ignore into blah values (?, ?)',(cid, zlib.compress(html)))

n welcher Stelle erhalte ich den Fehler:

sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.

Wenn ich 'text' anstelle von 'blob' verwende und das HTML-Snippet nicht komprimiere, funktioniert alles einwandfrei (db ist allerdings zu groß). Wenn ich 'blob' verwende und über die Python-Zlib-Bibliothek komprimiere, wird die obige Fehlermeldung angezeigt. Ich sah mich um, konnte aber keine einfache Antwort auf diese Frage finden.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage