在Python 2.7中 使用sqlite3:
<>>>>>>&gt <<<<form(..)
使用sqlalchemy:
connection = sqlite3.connect('History_1.db')
connection.text_factory=str
cursor = connection.cursor()
cursor.executemany('insert into INDEX_BASIC_TABLE (code,name) values (?,?)', [("399333", "1wwo我wal阿斯蒂芬回家看"),("399333", "1阿道夫"),("399333", "1")])
connection.commit()
cursor.close()
connection.close()
<<<<<<<< <<<
engine = create_engine('sqlite:///1.db', echo=engine_echo)
connection = engine.connect()
connection.text_factory=str
<<<<<<<<< ;<<<
connection.execute('insert into INDEX_BASIC_TABLE (code,name) values ("399333", "我")')
connection.execute('insert into INDEX_BASIC_TABLE (code,name) values ("399333", "的我"),("399333", "的我")')
使用pandas,如果df中的中文字符df是pandas对象,则无法执行以下操作:
connection.execute('insert into INDEX_BASIC_TABLE (code,name) values (?,?)', [("399333", "1wwo我wal阿斯蒂芬回家看"),("399333", "1阿道夫"),("399333", "1")])
connection.close()
以上所有'我不能做'会产生以下错误: ProgrammingError:(sqlite3.ProgrammingError)除非使用可解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串。强烈建议您只需将应用程序切换为Unicode字符串。
为什么呢?是sqlite3的orignial语句可以做的那些bug,但sqlachemy和pandas不能做?或者我该如何解决这些问题? 谢谢!