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

Python sqlalchemy创建不带命名关键字的插入对象,python,python-2.7,sqlalchemy,Python,Python 2.7,Sqlalchemy,在文档中,创建要插入的行的方式如下所示: insert_obj = MyTable(column1="a", column2="b") 现在假设我有一个列表中的行,我想创建这个没有命名关键字的对象?类似这样的内容(它从列表中的位置获得正确的列): 我的用例: engine = create_engine('sqlite:///database/test.db') engine.connect() Base = automap_base() Base.prepare(engine, refle

在文档中,创建要插入的行的方式如下所示:

insert_obj = MyTable(column1="a", column2="b")
现在假设我有一个列表中的行,我想创建这个没有命名关键字的对象?类似这样的内容(它从列表中的位置获得正确的列):

我的用例:

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()
我想去掉循环中的命名关键字


解决方案是使用sql炼金术文档中的
Articles.\uuuu table\uuuu.insert().values(row)

同样对于任何一种形式,但更典型的是对于Insert构造,也接受包含表中每个列的条目的元组:


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

我更新了Articles。insert()引发了一个错误:AttributeError'Articles'对象没有属性'insert'。解决方案是使用Articles。\表\插入()。值(行)。
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()
MyTable.__table__.insert().values(("a", "b"))