有没有办法使用pymysql将数据帧插入mysql?

时间:2019-07-15 13:39:32

标签: python mysql python-3.x pymysql

我有这个:

import pymysql
import pymysql.cursors
host = "localhost"
port=3306
user = "db"
password='pass'
db='test'
charset='utf8mb4'
cursorclass=pymysql.cursors.DictCursor
try:
    connection= pymysql.connect(host=host,port=port,user=user,password=passw,db=db,charset=charset,cursorclass=cursorclass)
    Executor=connection.cursor()
except Exception as e:
    print(e)
    sys.exit()

我尝试使用大熊猫to_sql(),但是它将表中的值替换为最新的。我想使用Pandas将值插入表中,但我想避免重复的条目,如果有的话,它应该被传递。

1 个答案:

答案 0 :(得分:0)

可以对数据框进行腌制,然后将其插入表中BLOB类型的列中。如果采用这种方式,则必须将mysqld返回的结果发送给我们

编辑:我知道您现在要做什么。这是一个可能的解决方案。让我知道它是否有效!

# assume you have declared df and connection

records = df.to_dict(orient = 'records')

for record in records:
    sql = "INSERT INTO mytable ({0}) \
           VALUES ({1})".format(record.keys(), record.values())
    curs = connection.cursor()
    try:
        curs.execute(sql)
        curs.close()
    except:
        break        #handle/research the error