2014-09-22 112 views
0

我正在將PHP代碼轉換爲將數據插入到MySql表中的Python代碼。在Python中使用變量修改參數名稱

存在基於命名約定四種可能的列: image_ + [HQ,SQ,LQ,拇指] + _url

PHP代碼如下(使用Laravel DB查詢):

DB::table('items') 
       ->insertGetId(array(
        'title' => $title, 
        'image_' . $quality . '_url' => $amazon_url, 
       )); 

item_ins = items_tbl.insert().values(title=item_title, 
                image_+quality+_url=amazon_url 

      ) 

我怎樣才能做到在Python相同的結果,而不REV: (使用SQLAlchemy的核心),這是給我一個語法錯誤

相應的Python代碼正在處理if/else語句?

回答

1

在Python函數調用中不能有不定名的關鍵字參數。但是,可以展開dict到關鍵字參數:

item_ins = items_tbl.insert().values(**{'title' : item_title, 
             'image_'+quality+'_url' : amazon_url}) 

如果quality=='hq'例如,這相當於調用

item_ins = items_tbl.insert().values(title = item_title, 
            image_hq_url: amazon_url) 

你也應該注意到,在語法您嘗試使用,你試過將image__url作爲字符串文字和quality作爲變量處理,而不對它們進行任何語法區分。這是行不通的。

+0

謝謝。這有很大幫助。 – egekhter 2014-09-23 00:02:45