从 SQL 结果创建熊猫数据框

mar*_*est 1 python mysql sql dataframe pandas

我正在尝试使用以下代码

mysql = MySQL()
app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'compData'
app.config['MYSQL_DATABASE_HOST'] = '0.0.0.0'
mysql.init_app(app)

@app.route("/Authenticate")
def Authenticate():
    cursor = mysql.connect().cursor()
    cursor.execute("SELECT * from abclimit 5")
    pro_info = pd.DataFrame(data=cursor.fetchall(), index=None,columns=[i[0] for i in cursor.description])

    return Response(json.dumps(pro_info),  mimetype='application/json')

if __name__ == "__main__":
    app.run()
Run Code Online (Sandbox Code Playgroud)

但给了我错误

File "pathe\frame.py", line 303, in __init__
    raise PandasError('DataFrame constructor not properly called!')
pandas.core.common.PandasError: DataFrame constructor not properly called!
Run Code Online (Sandbox Code Playgroud)

我想从 sql 查询结果创建熊猫 DF

Max*_*axU 7

在 Pandas 中,您可以直接从 DB 读取

from sqlalchemy import create_engine
import pymysql
import pandas as pd

db_connection = 'mysql+pymysql://mysql_user:mysql_password@mysql_host/mysql_db'
conn = create_engine(db_connection)

df = pd.read_sql("SELECT * from abc limit 5", conn)
Run Code Online (Sandbox Code Playgroud)