2017-04-07 8 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

は、あなたが動的に関数に送られる引数名を設定したい場合は、kwargsからを使用する必要がありますあなたに

+0

'str(oColumn)'を試しましたか? – Rishav

答えて

0

ありがとうございます。

render(**{argument_name: argument_value} 

あなたの場合、oColumnには引数にする文字列が含まれていると仮定すると、このようになります。

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

私があなたの意図を誤解しているかどうかを教えてください。

+0

ありがとうございます。上記のスクリプトでどのように統合するか説明してください。私はkwargsにあまり精通していません。 –

+0

@ Alexis.Rolland - この精緻化は役に立ちますか? – Shadow

+0

Definitelly、あなたはよく理解していて、それは魅力のように機能します!ありがとうございました! –

関連する問題