2017-07-26 4 views
0

J'essaye de lire quelques tables d'une base de données. Lorsque la base de données contient uniquement des chiffres et des caractères anglais, les données sont OK, mais mes autres tables de la base de données contiennent des caractères japonais. Lorsque je télécharge ces tableaux, les colonnes avec des caractères japonais affiche tous les points d'interrogation: ???????????PyMySQL et Pandas retournent les colonnes brouillées pour les caractères japonais

Mon code:

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,) 

J'ai essayé pd.set_option('display.unicode.east_asian_width', True) qui a travaillé pour moi auparavant, mais il ne semble pas être utile ici .

Répondre

0

J'ai effectivement résolu mon problème et pour ceux qui sont intéressés ci-dessous est la réponse: Je juste besoin d'ajouter charset='ujis' à mon code.Maintenant, il n'est pas brouillé.

conn = pymysql.connect(host='127.0.0.1', user=sql_username, 
       passwd=sql_password, 
       port=tunnel.local_bind_port,db=db,charset='uji')