首先要提到的是,資料從數(shù)據(jù)庫(kù)中取出轉(zhuǎn)成json格式炼幔,并不建議使用pandas,雖然真的很簡(jiǎn)便(pd.read_sql, pd.to_json)江掩,但資料量大的時(shí)候耗時(shí)明顯增加乘瓤。為此推薦使用python內(nèi)置的數(shù)據(jù)結(jié)構(gòu)來(lái)處理。
#!/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'),
}
# 重點(diǎn)是參數(shù)cursorclass選用DictCursor衙傀。
# 輸出的資料每一筆直接就是一個(gè)欄位名為key,值為value的dict
conn = pymysql.connect(**dict_mysql, cursorclass=pymysql.cursors.DictCursor)
# 如果不指定cursorclass(使用默認(rèn)), 則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