我正在尝试将 pandas 数据框保存到 mysql MS Azure 数据库中。我有一个证书文件和一个成功的连接(我认为)。但由于某种原因,熊猫
to_sql
方法将无法正常工作,因为出现以下错误:
pandas.errors.DatabaseError: 在 sql 'SELECT name FROM 上执行失败 sqlite_master WHERE type='table' AND name=?;': 不是所有参数 在字符串格式化期间转换
将数据帧保存到 azure mysql 数据库时,我需要注意什么吗?
这是我的代码:
import pandas as pd
import pymysql
df = pd.read_csv('files/exports//table.csv')
print(df.head())
conn = pymysql.connect(host='DNS name of my database',
user='user',
passwd="password",
db='databasename',
ssl_ca="somecert.crt.pem",
ssl_disabled=False)
df.to_sql(con=conn, name='tablename')
很高兴能得到任何帮助。
最好的问候,
安德烈
正如 JNevill 所建议的那样,解决方案是更改与 sqlalchemy 的连接。这是有效的代码:
import mysql.connector
import pandas as pd
import sqlalchemy
database_connection = sqlalchemy.create_engine('mysql+mysqlconnector://user:password@server-dns-name/database',connect_args={
"ssl_ca": "paththothecertfile.pem"} )
df = pd.read_csv('table.csv')
df.to_sql(con=database_connection, name='table',if_exists='replace')