我正在尝试将我正在通过csv文件读取的文档字符串插入到sqlite数据库中,该数据库中包含像(children's)这样的字符,它会抛出以下错误:
DatabaseError:除非使用a,否则不得使用8位字节串 text_factory,可以解释8位字节串(如text_factory = STR)。强烈建议您只需切换即可 应用于Unicode字符串。
在插入文档之前,我确保将字符串转换为unistring。
unicode('Children'','unicode-escape')
我正在使用Django ORM来保存数据。我有什么办法可以摆脱这个吗?
答案 0 :(得分:1)
导致错误的.execute()参数是Python字节串,而不是像你说的那样的unicode字符串。解决方案:创建一个unicode字符串:unicode(your_data,your_encoding)。对于大多数csv文件,编码将是" latin-1"或者" uft-8"。
使用" unicode-escape"几乎肯定是错的。它是一个特定于Python的编码意味着"生成一个适合作为Python源代码中的Unicode文字的字符串"根据文档(https://docs.python.org/2/library/codecs.html)。