首页 > 解决方案 > Python pandas 到 azure SQL,批量插入

问题描述

如何将 python 数据帧的批量插入到相应的 azure SQL 中。我看到 INSERT 适用于单个记录:

插入XX([字段1])值(值1);

如何将数据框的全部内容插入 Azure 表?

谢谢

标签: python-3.xazure-sql-database

解决方案


根据我的测试,我们也可以使用to_sqlAzure sql 插入数据

例如

from urllib.parse import quote_plus

import numpy as np
import pandas as pd
from sqlalchemy import create_engine, event

import pyodbc
# azure sql connect tion string
conn ='Driver={ODBC Driver 17 for SQL Server};Server=tcp:<server name>.database.windows.net,1433;Database=<db name>;Uid=<user name>;Pwd=<password>;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;'
quoted = quote_plus(conn)
engine=create_engine('mssql+pyodbc:///?odbc_connect={}'.format(quoted))

@event.listens_for(engine, 'before_cursor_execute')
def receive_before_cursor_execute(conn, cursor, statement, params, context, executemany):
    print("FUNC call")
    if executemany:
        cursor.fast_executemany = True

#insert 
table_name = 'Sales'
# For test, I use a csv file to create dataframe  
df = pd.read_csv('D:\data.csv')
df.to_sql(table_name, engine, index=False, if_exists='replace', schema='dbo')

#test after inserting
query = 'SELECT * FROM {table}'.format(table=table_name )
dfsql = pd.read_sql(query, engine)
print(dfsql)

在此处输入图像描述


推荐阅读