mysql pandas 查询列时出现 unicode 错误
mysql pandas unicode error while querying on columns
我有一个 csv 文件,我正在通过 pandas.Then 读取它。我正在尝试对该文件调用 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.
尝试这样做:
fl=pandas.read_csv('file.csv',encoding='utf-8')
指定将文件编码为utf-8
编码。还尝试将字符串编码为 utf-8
无论您使用从文件还是外部源获取的字符串。
例如:
stringname.encode('utf-8')
尝试按照 harshad 的建议使用不同的编码。
encoding = "ISO-8859-1" ,此后 mysql 查询也正常工作。
我有一个 csv 文件,我正在通过 pandas.Then 读取它。我正在尝试对该文件调用 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.
尝试这样做:
fl=pandas.read_csv('file.csv',encoding='utf-8')
指定将文件编码为utf-8
编码。还尝试将字符串编码为 utf-8
无论您使用从文件还是外部源获取的字符串。
例如:
stringname.encode('utf-8')
尝试按照 harshad 的建议使用不同的编码。
encoding = "ISO-8859-1" ,此后 mysql 查询也正常工作。