查询列时mysql pandas unicode错误

时间:2015-02-16 08:00:43

标签: python mysql unicode

我有一个csv文件,我正在通过pandas阅读。然后我试图在该文件上调用mysql查询,这会导致错误。

import pandas
import pandasql
fl=pandas.read_csv('file.csv')

文件的列是

fl.columns
Index([ u'time', u'contact', u'address'], dtype='object')

查询

q=u"""
SELECT contact FROM fl LIMIT 50
"""

我正在以

运行
fl_solution=pandasql.sqldf(q,locals())

我得到的错误是: -

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.

2 个答案:

答案 0 :(得分:3)

尝试这样做:

fl=pandas.read_csv('file.csv',encoding='utf-8')

它指定将文件编码为utf-8编码。在使用从文件或外部源获取的字符串的任何地方,也尝试将字符串编码为utf-8

例如:

stringname.encode('utf-8')

答案 1 :(得分:2)

根据harshad的建议尝试使用不同的编码。

encoding =" ISO-8859-1" ,此后mysql查询也正常工作。