ale*_*xsc 8 python mysql csv json utf-8
我收到了从MySQL数据库导出的csv文件(我认为编码是latin1,因为语言是西班牙语).不幸的是,编码是错误的,我根本无法处理它.如果我使用文件:
$ file -I file.csv
file.csv: text/plain; charset=unknown-8bit
我试图在python中读取文件并将其转换为utf-8,如:
r.decode('latin-1').encode("utf-8")
或使用mysql_latin1_codec:
r.decode('mysql_latin1').encode('UTF-8')
我试图将数据转换为json对象.保存文件时出错:
'UnicodeEncodeError:'ascii'编解码器无法对位置中的字符进行编码'
你知道我怎么能把它转换成普通的utf-8字符?或者我如何将数据转换为有效的json?谢谢!!
小智 1
通过使用 Continuum Analytics 的 pandas 数据框,我得到了非常好的结果。
你可以这样做:
import pandas as pd
from pandas import *
con='Your database connection credentials user, password, host, database to use'
data=pd.read_sql_query('SELECT * FROM YOUR TABLE',conn=con)
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
data.to_csv('path_with_file_name')
Run Code Online (Sandbox Code Playgroud)
或转换为 JSON:
data.to_json(orient='records')
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢自定义 json 格式,请参阅此处的文档: http://pandas.pydata.org/pandas-docs/stable/ generated/pandas.DataFrame.to_json.html