PyMySQL 和 Pandas return 日语字符的乱码列
PyMySQL and Pandas return garbled columns for Japanese characters
我正在尝试从数据库中读取一些表格。当数据库只包含数字和英文字符时,我可以正常获取数据,但数据库中的其他表包含一些日文字符。当我下载这些表格时,带有日语字符的列显示所有问号:???????????
我的代码:
import pymysql
from sshtunnel import SSHTunnelForwarder
with SSHTunnelForwarder(
(ssh_host, ssh_port),
ssh_username=ssh_user,
ssh_pkey=mypkey,
remote_bind_address=(sql_ip, sql_port)) as tunnel:
conn = pymysql.connect(host='127.0.0.1', user=sql_username,
passwd=sql_password,
port=tunnel.local_bind_port,db=db,unicode_results=True)
#data = pd.read_sql_query(query, conn)
data = pd.read_sql_query(query_2, conn,)
我试过pd.set_option('display.unicode.east_asian_width', True)
,它以前对我有用,但在这里似乎没有用。
我实际上解决了我的问题,对于那些感兴趣的人,下面是答案:
我只需要将 charset='ujis'
添加到我的 code.Now 它不是乱码。
conn = pymysql.connect(host='127.0.0.1', user=sql_username,
passwd=sql_password,
port=tunnel.local_bind_port,db=db,charset='uji')
我正在尝试从数据库中读取一些表格。当数据库只包含数字和英文字符时,我可以正常获取数据,但数据库中的其他表包含一些日文字符。当我下载这些表格时,带有日语字符的列显示所有问号:???????????
我的代码:
import pymysql
from sshtunnel import SSHTunnelForwarder
with SSHTunnelForwarder(
(ssh_host, ssh_port),
ssh_username=ssh_user,
ssh_pkey=mypkey,
remote_bind_address=(sql_ip, sql_port)) as tunnel:
conn = pymysql.connect(host='127.0.0.1', user=sql_username,
passwd=sql_password,
port=tunnel.local_bind_port,db=db,unicode_results=True)
#data = pd.read_sql_query(query, conn)
data = pd.read_sql_query(query_2, conn,)
我试过pd.set_option('display.unicode.east_asian_width', True)
,它以前对我有用,但在这里似乎没有用。
我实际上解决了我的问题,对于那些感兴趣的人,下面是答案:
我只需要将 charset='ujis'
添加到我的 code.Now 它不是乱码。
conn = pymysql.connect(host='127.0.0.1', user=sql_username,
passwd=sql_password,
port=tunnel.local_bind_port,db=db,charset='uji')