使用Python写入MySQL而不使用SQL字符串

问题描述 投票:0回答:1

我将数据导入我的Python3环境,然后将其写入MySQL数据库。但是,有很多不同的数据表,因此写出每个INSERT语句并不是真正的实用,加上一些有50多列。

有没有一种很好的方法可以直接从数据帧在MySQL中创建表,然后使用相同格式的数据帧将插入命令发送到同一个表,而不必实际输出所有列名称?我开始尝试调用列名并格式化它并将所有内容作为字符串连接,但它非常混乱。

理想情况下,有一个功能可以直接处理这个问题。例如:

apiconn.request("GET", url, headers=datheaders)

#pull in some JSON data from an API
eventres = apiconn.getresponse()
eventjson = json.loads(eventres.read().decode("utf-8"))

#create a dataframe from the data
eventtable = json_normalize(eventjson)


dbconn = pymysql.connect(host='hostval',
user='userval',
passwd='passval',
db='dbval')
cursor = dbconn.cursor()

sql = sqltranslate(table = 'eventtable', fun = 'append') 
#where sqlwrite() is some magic function that takes a dataframe and 
#creates SQL commands that pymysql can execute.

cursor.execute(sql)
mysql python-3.x pymysql
1个回答
0
投票

您想要的是抽象SQL语句生成的方法。

SQLAlchemy这样的库可以很好地完成,包括构建DDL,DML和DQL语句的强大方法,而无需直接编写任何SQL。

© www.soinside.com 2019 - 2024. All rights reserved.