gpt4 book ai didi

python - sqlalchemy 创建不带命名关键字的插入对象

转载 作者:行者123 更新时间:2023-12-01 09:06:59 26 4
gpt4 key购买 nike

文档中创建要插入的行的方式是这样写的:

insert_obj = MyTable(column1="a", column2="b")

现在假设我在列表中有该行并且我想在没有命名关键字的情况下创建此对象?像这样的东西(它从列表中的位置获取正确的列):

row = ["a", "b"]
insert_obj = MyTable(row)

我的用例:

engine = create_engine('sqlite:///database/test.db')
engine.connect()

Base = automap_base()
Base.prepare(engine, reflect=True)
session = Session(bind=engine)

df = pd.read_csv("../test.csv", sep=';')
Articles = Base.classes.articles
inserts = []
for index, row in df.iterrows():
insert.append(Articles(article_id=row[0], article_name=row[1]))
session.add_all(inserts)
session.commit()

我想摆脱循环中的命名关键字。

解决方案是使用Articles.__table__.insert().values(row)

最佳答案

来自 sql_alchemy 文档:

http://docs.sqlalchemy.org/en/latest/core/dml.html#sqlalchemy.sql.expression.Insert.values

Also for either form but more typically for the Insert construct, a tuple that contains an entry for every column in the table is also accepted:

MyTable.__table__.insert().values(("a", "b"))

注意,元组的每一列都应该有一个条目。您能详细说明一下您的用例吗?

关于python - sqlalchemy 创建不带命名关键字的插入对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51966866/

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