【发布时间】:2021-08-24 20:47:47
【问题描述】:
我有一个简单的 python3 脚本,它使用 Sqlalchemy orm(1.3) 查询 Employee 表,底层数据库是 Sqlite3。如果 Employee 表的列名称为“Id”,则此脚本可以正常工作,但如果列名称为“id”(小写),则该脚本会失败。无论列名是“Id”还是“id”,有没有办法让这个脚本工作。基本上我想让这个脚本工作,不管列名是否区分大小写。
代码如下:
from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm.query import Query
from sqlalchemy.ext.automap import automap_base
import sys
engine = create_engine(sys.argv[1])
metadata = MetaData(engine)
base = automap_base()
base.prepare(engine, reflect=True)
employee_table = base.classes["Employee"]
query = Query(employee_table).filter(employee_table.Id.in_(['100', '200']))
我从命令行以python3 test.py sqlite:///temp.db 运行它
这是我收到的错误:
AttributeError:类型对象'Employee'没有属性'Id'
【问题讨论】:
标签: sqlite sqlalchemy