簡體   English   中英

如何復制SQLAlchemy查詢對象?

[英]How to copy a SQLAlchemy query object?

我嘗試了copy.deepcopy,但收到此錯誤: newobj中的文件“ /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/copy_reg.py”第93行返回cls。 新的 (cls,* args)TypeError:對象。 新的 (psycopg2._psycopg.type)不安全,請使用psycopg2._psycopg.type。 ()

為什么要復制? 因為我有兩個要運行的查詢,它們幾乎相同,但並不完全相同。 我已經應用了六個相同的過濾器,現在我想應用一個過濾器,執行該過濾器,然后“回滾”並應用另一個過濾器並執行該過濾器。

我嘗試了酸洗和酸洗作為解決方法,但酸洗不適用於功能對象。

每當您添加.filter()或類似於查詢的內容時,它都會返回查詢的副本。 在此處查看文檔: http : //docs.sqlalchemy.org/en/rel_0_8/orm/query.html#sqlalchemy.orm.query.Query.filter

我想您可以針對您的情況使用該功能:

query = session.query(Customer)
main_query = query.filter(Customer.size > 150)
query1 = main_query.filter(Customer.age > 50)
query2 = main_query.filter(Customer.age < 30)

query1將返回所有大於150且大於50的客戶

query2將返回所有大於150且小於30的客戶

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM