如何使用 `mysql.connector` 使用 `pd.read_sql`

Posted

技术标签:

【中文标题】如何使用 `mysql.connector` 使用 `pd.read_sql`【英文标题】:How to use `pd.read_sql` using `mysql.connector` 【发布时间】:2020-10-28 03:04:32 【问题描述】:

我知道我们可以使用与mysql.connector 不同的包来读取sql,但由于我只知道mysql.connector,所以我想用它来读取sql 中的表格并将其保存为pandas 中的dataframe。 我的代码如下。

import mysql.connector
import pandas as pd

mydb = mysql.connector.connect(
    host = 'localhost',
    user = 'root',
    passwd = '*',
    database = 'mydatabase'
)

mycursor = mydb.cursor()

query = "SELECT * FROM my table"
df = pd.read_sql(query, mycursor)

我不确定最后一行是df = pd.read_sql(query, mycursor)。我想我在这里遗漏了一些论点。 你能帮帮我吗?

【问题讨论】:

【参考方案1】:

试试这个代码

import mysql.connector as sql

import pandas as pd

db_connection = sql.connect(host='hostname', database='db_name', 
user='username', password='password')

df = pd.read_sql('SELECT * FROM table_name', con=db_connection)

【讨论】:

【参考方案2】:

您需要将df = pd.read_sql(query, mycursor) 替换为df = pd.read_sql_query(query, mydb),因为您想使用查询创建DataFrame(确保传递mydb 而不是mycursor)。

【讨论】:

我收到此错误:AttributeError: 'CMySQLCursor' 对象没有属性 'cursor'。它不起作用。

以上是关于如何使用 `mysql.connector` 使用 `pd.read_sql`的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python mysql.connector 远程连接 MySQL

使用 Python mysql.connector 成功插入 MySQL 数据后丢失

使用 python 库 mysql.connector 将 csv 插入 MySQL 数据库

使用 python 和 mysql.connector 从表中获取数据

mysql.connector 事务总结

将 cx_freeze 与 mysql-connector 一起使用