Mit SQLite3 in Python versuche ich, eine komprimierte Version eines Ausschnitts aus UTF-8-HTML-Code 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)))
An welcher Stelle erhalten Sie 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 jedoch 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.