簡體   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