我想構建一個 SQLAlchemy 命令來從資料庫表中獲取資訊。為此,我使用以下代碼行:
def new_rows(table, target):
command = select(table)
return command_execution(command)
目標是一個字典,如果目標中存在一個鍵,我希望在我的選擇命令之后添加它。例如,如果目標是:
target = {
"limit": 20,
"order_by": "name"
}
那么我的命令將變為:
command = select(table).limit(20).order_by(table.c["name"])
有沒有辦法在 Python 中以干凈的方式做到這一點?
uj5u.com熱心網友回復:
最干凈的路線可能是這樣的:
command = select(table)
if (value := target.get('limit')):
command = command.limit(value)
if (value := target.get('order_by')):
command = command.order_by(value)
...
如果您絕對肯定表中的所有內容都是可以應用于命令的方法并且它們的順序正確,則可以撰寫:
command = select(table)
for key, value in target.items():
command = getattr(command, key)(value)
但這真的很難看,只有在無法列舉可能的后綴時才應該這樣做。
uj5u.com熱心網友回復:
用于getattr()從字典的鍵動態呼叫方法。
def new_rows(table, target):
command = select(table)
for key, value in target.items():
command = getattr(command, key)(value)
return command_execution(command)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/418704.html
標籤:
上一篇:如何轉換元組的輸入串列
