sqlalchemy 查询报错,求大佬们帮忙瞅瞅

132 天前
 hahahalololo
self.AmazonCustomerReturns = Table('amazon_customer_returns', metadata, autoload=True, autoload_with=engine)
session = Session(engine)

result = session.query(self.AmazonCustomerReturns).first()
print(111,result)

result = session.query(self.AmazonCustomerReturns).filter_by(return_date='2024-01-07 00:00:00').all()
print(222, result)

result=session.query(self.AmazonCustomerReturns).filter(self.AmazonCustomerReturns.return_date>='2024-01-07 00:00:00').all()
print(333, result)

前面 2 个都没有问题,这个字段也是有的,执行到第三个的时候报错 AttributeError: 'Table' object has no attribute 'return_date' 求助大佬们瞅瞅。。

545 次点击
所在节点    问与答
4 条回复
xuqiccr
132 天前
你这里的 self.AmazonCustomerReturn 是个表,AmazonCustomerReturns.return_date 这种用法是针对于 ORM 映射的,你改成 select([self.AmazonCustomerReturns]).where(self.AmazonCustomerReturns.c. return_date >= '2024-01-07 00:00:00')这种写法试试
xuqiccr
132 天前
我盲猜的哈,我没有用过这种写法,不对不要喷我呜呜呜
stonesirsir
131 天前
我的印象中用反射的话,最好动态将一个表提取成 orm 对象出来,这样对象才带字段属性,你这样是一个 table 对象,本来就没有 return_data 属性?之前用过,不对请指教
hahahalololo
131 天前
@xuqiccr @stonesirsir 3q ,后面找到原因了,最后一个忘记写了.c ,改成 self.AmazonCustomerReturns.c.return_date 就行了,眼神不好,一直没有注意到这个点,后面突然发现。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1007597

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX