pandas中read_sql(read_sql_query)中文字符乱码问题

使用pandas读取数据库时,由于存储有汉字,开始读取时发现汉字被乱码显示,如下:

In [70]: import pymysql

In [71]: conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test')

In [72]: import pandas as pd

In [73]: data = pd.read_sql('select * from obj_infos', conn)

In [74]: data.head()
Out[74]: 
   house_id      dx      dy  oc  ot       x       y
0         0  2656.0  3053.0  ??  ??     0.0     0.0
1         0   999.0   629.0  ??  ??    68.0   780.0
2         0   534.0   314.0  ??  ??   315.0   465.0
3         0  1561.0   821.0  ??  ??    54.0  2190.0
4         0   342.0  2095.0  ??  ??  2314.0    13.0

这个时候需要设置如下:

In [75]: conn2 = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='test', charset='utf8')

再进行读取:

In [78]: data = pd.read_sql('select * from obj_infos', conn2)

In [79]: data.head()
Out[79]: 
   house_id      dx      dy  oc  ot       x       y
0         0  2656.0  3053.0  书房  区域     0.0     0.0
1         0   999.0   629.0  书桌  家具    68.0   780.0
2         0   534.0   314.0  椅子  家具   315.0   465.0
3         0  1561.0   821.0  沙发  家具    54.0  2190.0
4         0   342.0  2095.0  书架  家具  2314.0    13.0

此时就可以看到汉字可以正常显示了,read_sql_query 经测试效果同。

你可能感兴趣的:(pandas,python数据库学,数据库)