Python39 和 pymysql

Python39 and pymysql

提问人:Derek_P 提问时间:10/4/2023 更新时间:10/5/2023 访问量:56

问:

我刚刚尝试从 3.9.5 升级到 python3.7,但我遇到了一个我无法完全确定的奇怪行为。它涉及 pandas1.3 和 pymysql1.1.0。奇怪的是,数据帧的长度是相同的,但在 3.9 执行版本中,数据却不正确。

我真的很想继续使用 python39,但我不太清楚这里的问题是什么......

现在当我运行时:

import pandas as pd
import pymysql as mysql
conn = connection = mysql.connect(host='xxxxxxxxxxxxxxxx',
                               user='xxxxxxxxxxxxxx',
                               password='xxxxxxxxxxxxxxxx',
                               db='xxxxxxxxxxxx',
                               charset='utf8',
                               port=xxxxxxxxxxx,
                               cursorclass=mysql.cursors.DictCursor)

somesql = """SELECT * FROM SOMETABLE;"""

df = pd.read_sql(somesql, conn)

我曾经进入 python37,它应该是正确的格式:

foo bar baz
___________
 a   b   c
 x   y   z

现在使用 python39,我返回了数据,但每列的数据是每个单元格中重复的列名:

foo bar baz
___________
foo bar baz
foo bar baz
python-3.x pandas python-3.7 pymysql

评论

1赞 Achraf Ben Salah 10/4/2023
也许您的问题与MySQL连接器的版本有关。将 Python 3.9.5 与 pandas 1.3 和 pymysql 1.1.0 一起使用时,每个单元格中的列名都会重复。使用以下命令检查: print(“pandas version:”, pd.__version__) print(“pymysql version:”, mysql.__version__)
1赞 Derek_P 10/4/2023
@AchrafBenSalah当我使用 pip freeze 检查 3.9 版本的版本时。它说我使用的是 1.1.0,但在我的代码中它使用的是 1.0.2。我已经升级了,现在我正在使用 pymysql1.4.6,数据又回来了!请回答问题,我会接受答案。

答:

1赞 Achraf Ben Salah 10/5/2023 #1

您面临的问题是与不兼容的模块版本有关。

请使用这些命令来评估您的 pandas 和 pymysql 版本是否与 Python 3.9 兼容。

print("pandas version:", pd.__version__) 
print("pymysql version:", mysql.__version__)