尝试使用SQLAlchemy了解UnmappedInstanceError

时间:2015-06-29 16:33:04

标签: python pandas sqlalchemy

我尝试使用下面数据框中的数据填充SQL中的表。当我使用具有完全相同的列和数据类型的其他数据帧时,代码按预期运行,但仅对于此数据帧,错误sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.list' is not mapped来自行session.add([yc_node_hist(fk_yc_update = listofindices3[i],curve_date = row1['Date'], tenor = row1['Year'], Abrv = row1['VALUE'])])。我正在使用automap()将表yc_node_hist映射到一个类。 我的主要问题是我无法理解错误的含义

             Date        Year      VALUE     ABBRV
0      2005-01-04  0.08333333   4.709456      GBP
1      2005-01-05  0.08333333   4.713099      GBP
2      2005-01-06  0.08333333   4.707237      GBP
3      2005-01-07  0.08333333   4.705043      GBP

yc_node_hist

create table yc_node_hist
(
    id bigint IDENTITY(1,1) PRIMARY KEY,
    fk_yc_update bigint NOT NULL FOREIGN KEY REFERENCES yc_update(id),
    curve_date date NOT NULL,
    tenor float NOT NULL,
    Abrv float NOT NULL
)

我正在使用的代码:

engine2 = YieldData.Connectionengine()
session = Session(bind=engine, expire_on_commit=False)
for (i1, row1), (i2, row2) in pairwise(df.iterrows()):
    if row1['ABBRV'] == row2['ABBRV'] and isinstance(row1['VALUE'], float)==1:
        print(row1)
        session.add([yc_node_hist(fk_yc_update = listofindices3[i],curve_date = row1['Date'], tenor = row1['Year'], Abrv = row1['VALUE'])])

0 个答案:

没有答案