查询代码
import pandas as pd
import numpy as np
import pymysql
# 创建连接
cont = pymysql.connect(host='localhost', user='username', password='password', db='database')
# 执行sql语句
try:
with cont.cursor() as cursor:
sql="select * from tablebame where 时间 > '2017-08-20 00:00:00'"
cursor.execute(sql)
result=cursor.fetchall()
finally:
cont.close()
#转换成DataFrame格式
result = np.array(result)
data = pd.DataFrame(result)
data.head()
因为数据库中表列明为中文名称,报错:
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
File "D:\Anaconda3\lib\site-packages\pymysql\cursors.py", line 166, in execute
result = self._query(query)
File "D:\Anaconda3\lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Anaconda3\lib\site-packages\pymysql\connections.py", line 854, in query
sql = sql.encode(self.encoding, 'surrogateescape')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 48-49: ordinal not in range(256)
创建连接时设置charset=’utf8’属性即可
# 创建连接
cont = pymysql.connect(host='localhost', user='root', password='wdl095411', db='cement_data', charset = 'utf8')