繁体   English   中英

如何使用python将pandas DataFrame逐行(逐行)插入sql server

[英]how to insert pandas DataFrame into sql server line by line (row by row) using python

我试图将pandas逐行插入sql server,而不是同时插入,因为DataFrame包含一个巨大的行我希望插入是逐行的,并且在每一行之后打印“插入完成”或类似的东西

这是我同时插入所有行的代码

df = pd.DataFrame(data)

cursor = conn.cursor()
cursor.execute('''
SET ANSI_WARNINGS OFF;
                            CREATE TABLE Dir1(
                                EventID int,
                                Task int,
                                EventRecordID int,
                                Channel nvarchar(50),
                                computer nvarchar(50),
                                TargetUserName nvarchar(max),
                                TargetDomainName nvarchar(max),
                                TargetSid nvarchar(max),
                                ObjectClass nvarchar(max),
                                OpCorrelationID nvarchar(max),
                                SubjectUserSid nvarchar(max),
                                SubjectUserName nvarchar(max),
                                SubjectDomainName nvarchar(max),
                                


                                )
                                   ''')
for row in df.itertuples():
    cursor.execute('''
                                         INSERT INTO Dir1 (EventID,Task,EventRecordID,Channel,Computer,
                                TargetUserName,
                                TargetDomainName,
                                TargetSid,
                                ObjectClass,
                                OpCorrelationID,
                                SubjectUserSid,
                                SubjectUserName 
                                
                                )
                                         VALUES (?,?,?,?,?,?,?,?,?,?,?,?)
                                         SET ANSI_WARNINGS ON;
                                         ''',

                   row.EventID,
                   row.Task,
                   row.EventRecordID,
                   row.Channel,
                   row.Computer,
                   row.TargetUserName,
                   row.TargetDomainName,
                   row.TargetSid,
                   row.ObjectClass,
                   row.OpCorrelationID,
                   row.SubjectUserSid,
                   row.SubjectUserName,
                
                   )

conn.commit()
import pyodbc as ps
import pandas as pd
conn=ps.connect('Driver={SQL Server};'
            'Server=server_namwe;'
            'Database=practice_db;'
            'Trusted_Connection=yes;'
            )
cursor=conn.cursor()
df=pd.read_csv(r'C:\Users\zhaider\Desktop\bs.csv')
for i,j in df.iterrows():
      cursor.execute(f'''insert into tbl99 (series,status) values(?,?)''',
               j['Series'],j['STATUS'])
cursor.commit()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM