ProgrammingError: You must not use 8-bit bytestrings...
问题出现: 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. 产生原因: 问题在用Python的sqlite3操作数据库要插入的字符串中含有非ascii字符时产生,做插入的时候就报当前这个错误。 解决方法: 1. 按提示 1 2 connection = sqlite3.connect(...) connection.text_factory = str 但是如果字符中出现非ascii字符,那么依然不能解决问题,会产生不可预知的乱码,这样可以参考 2 2. 以utf8的编码格式进行解码转为unicode编码做插入 1 2 3 4 cursor.execute(''' INSERT INTO JAVBUS_DATA (姓名, 年龄) VALUES (?, ?) ''', ('张三'.decode('utf-8'), '22岁'.decode('utf-8'))) 但是如果数据太长,这样一个一个敲挺麻烦的,下面是一个使用map函数简化的小例子 ...