格式化cursor.execute的结果

时间:2018-05-27 04:20:56

标签: python

我需要帮助才能将结果显示为表格中的金额,金额,金额和月份。我能够在MySQL工作台中完成,但不能通过Python完成。 这是我的代码。

self.publisher

2 个答案:

答案 0 :(得分:0)

您可以使用pandas模块DataFrame

首先:python -m pip install -U pandas为您的Python版本安装pandas。

第二次用from pandas import DataFrame导入它。

然后,(使用第二个游标作为示例)将.execute中的数据存储到这样的变量中(只需添加r = infront of cursor2.execute):

r = cursor2.execute("SELECT sum(amount), sum(amount *.99) as discounted_amount, paymentDate from payments where paymentDate >= '2004-12-01' AND paymentDate <='2004-12-31'")

现在,将fetchall()存储到数据帧中:     df = DataFrame(r.fetchall())

最后,设置数据框的列:     df.columns = r.keys()

您应该能够看到表格的前5行:df.head()

参考:How to convert SQL Query result to PANDAS Data Structure?

答案 1 :(得分:0)

展望未来,您可能还想查看pandas.read_sql函数(documented here)。你传递了一个SQL查询和一个数据库连接,它完成了将它读入Pandas数据帧的所有工作!

例如:

import mysql.connector
from pandas import read_sql

conn = None
#Opening a connection
try:
    conn = mysql.connector.Connect(host="localhost", user="root",password="Karimanzira1978!", database="classicmodels")
    print("Connected to MySQL!")
except Exception as ex:
    print ("cannot connect to MySQL : exception : " + str(ex))

query = "SELECT sum(amount), sum(amount *.99) as discounted_amount, paymentDate from payments where paymentDate >= '2003-12-01' AND paymentDate <='2003-12-31'"

df = read_sql(query, conn)