gpt4 book ai didi

python - 如何在不输入所有列名称的情况下使用 pyodbc 执行许多插入?

转载 作者:行者123 更新时间:2023-11-30 23:09:18 25 4
gpt4 key购买 nike

我正在尝试将数据插入到我的 ms access sql 连接中。如何编写插入语句,无需输入所有列名和“?”值(value)观。

例如来自https://code.google.com/p/pyodbc/wiki/Cursor :

对每组参数执行相同的 SQL 语句。 seq_of_parameters 是一个序列序列。

params = [ ('A', 1), ('B', 2) ]
executemany("insert into t(name, id) values (?, ?)", params)

这将执行 SQL 语句两次,一次使用 ('A', 1),一次使用 ('B', 2)。

我有一个包含 22+ 列的表,我不想写“t(names,id,..etc)”和“values (?,?,...,?)。我只是想能够在不这样做的情况下输入我的参数。有什么建议吗?

最佳答案

我建议使用sqlalchemy 。它的核心语言是独立于数据库API的(因此对于所有广泛使用的sql数据库如MySQL、sqlite、cx_oracle等具有相同的接口(interface))并且pandas使用它作为与sql数据库交互的默认包。您不必手动输入这些 SQL 语句,df.to_sql 会处理它。示例代码如下所示。

from sqlalchemy import create_engine
import pandas as pd

# create an engine with the following syntax
# mssql (MicroSoft SQL)
# pyodbc (the python database api to your sql)
# username, password, database_name
ms_sql_engine = create_engine('mssql+pyodbc://my_username:my_password@my_database_name')

# I don't have MS sql installed in my PC, so just use sqlite in memory here
my_engine = create_engine('sqlite:///:memory:')


# your data in pandas dataframe
df = pd.DataFrame(np.random.randn(100, 5), columns='A B C D E'.split())

# write to sql
# replace engine with your own MS sql engine
df.to_sql('my_frame', my_engine)

关于python - 如何在不输入所有列名称的情况下使用 pyodbc 执行许多插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31325707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com