使用 getattr 获取字符串变量的内容
Get content of a string variable using 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)
效果不错 returns:
Today is 2017-03-22
Today is 2017-03-23
Today is 2017-03-24
我想从数据框列名称 oColumn
(即 'Date')中动态检索参数名称 Date=
。我考虑过使用 getattr(oColumn, 'something')
但不知道如何使用。
我也试过 str(oColumn)
并且 returns 错误:SyntaxError: keyword can't be an expression
谢谢
如果您想动态设置发送给函数的参数名称,您需要使用 kwargs。
render(**{argument_name: argument_value}
所以在你的情况下,假设 oColumn 包含你希望作为参数的字符串,它看起来像这样;
render(**{oColumn: oData.loc[oRow, oColumn]})
如果我误解了您的意图,请告诉我。
我想知道如何检索字符串变量的内容,以便我可以将其值用作函数中的参数名称。 这里的代码:
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)
效果不错 returns:
Today is 2017-03-22
Today is 2017-03-23
Today is 2017-03-24
我想从数据框列名称 oColumn
(即 'Date')中动态检索参数名称 Date=
。我考虑过使用 getattr(oColumn, 'something')
但不知道如何使用。
我也试过 str(oColumn)
并且 returns 错误:SyntaxError: keyword can't be an expression
谢谢
如果您想动态设置发送给函数的参数名称,您需要使用 kwargs。
render(**{argument_name: argument_value}
所以在你的情况下,假设 oColumn 包含你希望作为参数的字符串,它看起来像这样;
render(**{oColumn: oData.loc[oRow, oColumn]})
如果我误解了您的意图,请告诉我。