python:mysqldb cursorclass在设置为mysqldb.cursors.dictcursor时返回元组而不是字典

tp5buhyn  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(274)

所以我尝试用Pandas数据框中的mysqldb从数据库中检索数据。

import MySQLdb as mysqldb
import MySQLdb.cursors
import pandas as pd

def connection():
     db = mysqldb.connect(
             host="123.456.7.890",
             user="user",
             passwd="password",
             db="database",
             port=12345,
             cursorclass=MySQLdb.cursors.DictCursor
     )
     return db

mysql = connection()

def testing():
    cur = mysql.cursor()

    query = cur.execute("select * from table1")
    result = cur.fetchall()
    cur.close()

    result_df = pd.DataFrame(result)
    return result_df

当我打印“testing”函数时,我得到一个错误:

Traceback (most recent call last):
  File "C:/Users/xx/PycharmProjects/practice/python.py", line 97, in <module>
    print(testing())
  File "C:/Users/xx/PycharmProjects/practice/python.py", line 94, in testing
    result_df = pd.DataFrame(result)
  File "C:\Users\xx\PycharmProjects\practice\venv\lib\site-packages\pandas\core\frame.py", line 422, in __init__
    raise ValueError('DataFrame constructor not properly called!')
ValueError: DataFrame constructor not properly called!

我将cursorclass放在mysqldb.cursors.dictcursor中,以字典的形式获取数据,但似乎是以元组的形式获取数据。目前正在使用python3.7。
当我使用pymysql时它可以工作,但是看起来相当慢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题