使用字典键访问对象属性

时间:2019-05-24 09:36:01

标签: python dictionary attributes key call

我正在尝试将模型的超参数存储在数据框中,其中要存储的确切参数存储为字典的键。

键的值用于在循环的每次迭代中网格搜索最佳值。

例如,超参数字典可能看起来像这样:

hyperParams = {'C':[.0, 0.1, 1.], 'epsilon':[0., 0.1, 0.2]}

数据帧中存储值的元素是这样生成的:

for h in hyperParams.keys() :
    df[str(h)] = np.nan

如果参数是固定的,则用于存储特定值的代码将如下所示:

df.loc[row_index, 'C'] = regressor.C

但是参数(回归变量的属性)存储为键。

我已经尝试过了:

for h in hyperParams.keys() :
    df.loc[row_index, str(h)] = regressor.h

这:

for h in hyperParams.keys() :
    df.loc[row_index, str(h)] = regressor.str(h)

但是,这两个都不被视为回归器对象的属性。

有什么方法可以从字典的键中调用该对象的属性吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Python的内置getattr函数。 getattr函数的参数应该是对象以及要从该对象获取的属性的字符串值。因此,根据您的情况,您可以进行getattr(regressor, h)