如何将我的 Python 字典插入我的 SQL Server 数据库表



我有一个字典,其中包含 3 个键,对应于 SQL Server 表中的字段名称。这些键的值来自一个 excel 文件,我将这个字典存储在一个数据帧中,我现在需要将其插入到 SQL 表中。这一切都可以在下面的代码中看到:

import pandas as pd
import pymssql
df=[]
fp = "file path" 
data = pd.read_excel(fp,sheetname ="CRM View" )
row_date = data.loc[3, ]
row_sita = "ABZPD"
row_event = data.iloc[12, :]        
df = pd.DataFrame({'date': row_date,
                           'sita': row_sita,
                           'event': row_event
                           }, index=None)
df = df[4:]
df = df.fillna("")
print(df)

我的问题是我现在如何将此字典插入 SQL 表中?

另外,作为旁注,此代码是一个循环的一部分,该循环需要逐个浏览多个 excel 文件,将数据插入字典,然后插入 SQL,然后删除字典中的数据并重新开始下一个 excel 文件。

你可以尝试这样的事情:

import MySQLdb
# connect
conn = MySQLdb.connect("127.0.0.1","username","passwore","table")
x = conn.cursor()
# write
x.execute('INSERT into table (row_date, sita, event) values ("%d", "%d", "%d")' % (row_date, sita, event))
# close
conn.commit()
conn.close()

您可能需要根据SQL限制对其进行一些更改,但无论如何都应该为您提供一个良好的开端。

对于熊猫数据帧,可以使用熊猫内置方法to_sql存储在数据库中。以下是使用它的方法。

import sqlalchemy as sa
params = urllib.quote_plus("DRIVER={};SERVER={};DATABASE={};Trusted_Connection=True;".format("{SQL Server}",
                                                                              "<db_server_url>",
                                                                              "<db_name>"))

conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params)
engine = sa.create_engine(conn_str)
df.to_sql(<table_name>, engine,schema=<schema_name>, if_exists="append", index=False)

对于此方法,您需要安装sqlalchemy软件包。

pip install sqlalchemy

您还需要在计算机上设置 MSSql DSN。

最新更新