Python SQLAlchemy 中,怎么用变量表示字典的KEY

问题一

key = 'name'
db.session.query(Student).filter(Student[key] == value)

报错如下:

 stu_modify = db.session.query(Student).filter(Student[m_key] == m_value)
TypeError: 'DefaultMeta' object has no attribute '__getitem__'

是不是Student模型的的字段不能用变量表示?

问题二:

db.session.query(Student).filter(Student.name == m_value).first()

报错: 不可以遍历QueryBase

这个是为什么?

阅读 5.1k
2 个回答
是不是Student模型的的字段不能用变量表示?

可以。

不过,先说一点,在 Python 中: obj['a']obj.a 是不一样的,前者是 __getitem__ ,后者是 __getattribute__

你要用变量的话,可以 getattr(Student, key) == value ,不过,查询一般不会这样用。

报错: 不可以遍历QueryBase

看不出为什么,你查询那句是没问题的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题