首先要提到的是,资料从数据库中取出转成json格式,并不建议使用pandas,虽然真的很简便(pd.read_sql, pd.to_json),但资料量大的时候耗时明显增加。为此推荐使用python内置的数据结构来处理。
#!/usr/bin/python
# -*- coding:utf-8 -*-
import pymysql
import json
import configparser
config = configparser.RawConfigParser()
config.read("./config.cfg")
dict_mysql = {
'host':config.get('mysql','mysqlserver'),
'port':int(config.get('mysql','mysqlport')),
'user':config.get('mysql','mysqluser'),
'password':config.get('mysql','mysqlpassword'),
'database':config.get('mysql','database'),
}
# 重点是参数cursorclass选用DictCursor。
# 输出的资料每一笔直接就是一个栏位名为key,值为value的dict
conn = pymysql.connect(**dict_mysql, cursorclass=pymysql.cursors.DictCursor)
# 如果不指定cursorclass(使用默认), 则cursor.fetchall()返回的每一笔为tuple类型
"""
row_name = [for x[0] in cursor.description]
for row in cursor.fetchall():
data.append(dict(zip(row_name, row)))
"""
"""
print(conn.open)
conn.ping(reconnect=True)
"""
data = []
with conn.cursor() as cursor:
cursor.execute(sql)
result = cursor.fetchall()
for row in result:
data.append(row)
data = json.dumps(data)
# flask.jsonify(data)也可以
蟹蟹.jpg
网友评论