2017-04-07 51 views
0

我想知道如何檢索字符串變量的內容,以便我可以使用它的值作爲函數中的參數名稱。 下面的代碼:使用getattr獲取字符串變量的內容

import pandas 
import jinja2 

oDateList = ['2017-03-22','2017-03-23','2017-03-24'] 
oData = pandas.DataFrame() 
oData['Date'] = oDateList 
MyTemplate = 'Today is {{ Date }}' 
oTemplate = jinja2.Template(MyTemplate) 

for oRow in oData.index: 
    for oColumn in oData.columns: 
     MyTemplateUpdated = oTemplate.render(Date=oData.loc[oRow, oColumn]) 
     print(MyTemplateUpdated) 

它運作良好,並返回:

Today is 2017-03-22 
Today is 2017-03-23 
Today is 2017-03-24 

我想從數據框列名oColumn(這是「日期」)動態檢索參數名稱Date=。我想過使用getattr(oColumn, 'something'),但沒有弄清楚如何去做。

我自己也嘗試str(oColumn)它返回錯誤:如果你想動態設置參數名稱發送到一個功能SyntaxError: keyword can't be an expression

謝謝

+0

你嘗試過'str(oColumn)'嗎? – Rishav

回答

0

,你需要使用kwargs。

render(**{argument_name: argument_value} 

因此,在你的情況,假設oColumn包含你想成爲參數的字符串,它會看起來像這樣;

render(**{oColumn: oData.loc[oRow, oColumn]}) 

讓我知道我是否誤解了你的意圖。

+0

謝謝,但請您介紹一下如何將它集成到上面的腳本中?我對kwargs不是很熟悉。 –

+0

@ Alexis.Rolland - 這個精心製作的幫助嗎? – Shadow

+0

Definitelly,你很好理解,它的作用就像一個魅力!謝謝! –