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

나는 동적으로 ('날짜'임) dataframe 열 이름 oColumn에서 인수 이름 Date=를 검색하고 싶습니다. 나는 getattr(oColumn, 'something')을 사용하는 것에 대해 생각했지만 그렇게하는 방법을 찾지 못했습니다.

나는 또한 str(oColumn)을 시도하고 오류 반환 : 동적 함수에 전송되는 인수의 이름을 설정하려면

SyntaxError: keyword can't be an expression 당신

+0

'str (oColumn)'을 사용해 보셨습니까? – Rishav

답변

0

감사합니다, 당신은 kwargs로를 사용해야합니다. oColumn 당신이 인수를 받기를 원하시면 문자열, 그것은 다음과 같이 보일 것입니다 포함되어 있다고 가정 귀하의 경우 그래서

render(**{argument_name: argument_value} 

;

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

귀하의 의도를 잘못 이해했는지 알려주세요.

+0

감사합니다.하지만 위의 스크립트에서 어떻게 통합 할 것인지 설명해 주시겠습니까? 나는 kwargs에 익숙하지 않다. –

+0

@ Alexis.Rolland -이 정교화가 도움이됩니까? – Shadow

+0

Definitelly, 당신은 잘 이해하고 그것은 매력처럼 작동합니다! 고맙습니다! –