2017-08-22 85 views
0

我有以下代碼,我需要做的是檢查status,issueownermantis_id是否有效(非空)。根據有效性結果,我將所有有效的kwargs都傳遞給一個叫做upsert()的函數。什麼是檢查kwargs是否有效的有效方法,然後相應地傳遞它們?

form=ticket_form() 
status=request.form['status'] 
issue=request.form['ticket_issue'] 
owner=request.form['owner'] 
mantis_id=request.form['mantis_id'] 

這裏就是我通過有效的那些作爲kwargs參數第二部分:

cur.execute(upsert('tbl_tickets', status=status, issue=issue, owner=owner)) 
connect.commit() 

我可以單獨檢查每個人,但我不知道是否有更有效的/緊湊的方式我可以使用。謝謝。

+0

他們將有什麼樣的價值,如果它們是空的? 'None'? –

+0

@ChristianDean如果它們是空的,我根本不需要將它們傳遞給upsert()。因爲如果它們是空的,我不想更改數據庫中的現有值。所以只要沒有任何更新,我會保留那裏的任何內容。希望有所幫助。 – Likak

+0

我明白這一點。我在問你什麼價值代表了他們的「空虛」?如果它們是空的,它們將具有「無」的值。他們會成爲一個「空白」列表嗎? –

回答

2

你可以做這樣的事情:

all_args = dict(
    form=ticket_form() 
    status=request.form['status'] 
    issue=request.form['ticket_issue'] 
    owner=request.form['owner'] 
    mantis_id=request.form['mantis_id'] 
) 
valid_args = {k: v for k, v in all_args.items() if v} 
cur.execute(upsert('tbl_tickets', **valid_args)) 
+0

謝謝。它完美的工作。 – Likak

相關問題