我有一个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.
答案 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查询也正常工作。