设计类属性以匹配Python中的不一致键

时间:2013-02-06 09:38:51

标签: python class dictionary attributes

我在撰写问题时遇到了一些困难,所以我的搜索查询可能写得很糟糕,但我找不到任何可以帮助我的东西。

我试图通过以下方式解析文件:我使用正则表达式构建字典。然后我尝试创建对象,其中每个键的值填充我的类中每个属性的值。请参阅下面的代码。

for k, v in element.items():
  attr = k
  setattr(thisinstance, attr, v)
else:
  continue

(此实例指的是在代码中选择上面正确的实例。)

如果键和属性是例如“所有者”,则这非常有效。但如果关键是例如“所有者是”,则不能。我可以创建属性“the_owner_is”但是如何使密钥与此属性匹配?

到目前为止我发现的不满意的解决方案是在评估与属性的相等性之前更改键值。有没有办法避免对每个变体进行硬编码?

提前谢谢!

2 个答案:

答案 0 :(得分:1)

属性(以及一般的所有名称)名称中不能包含空格。

使用str.replace更改密钥名称

attr = k.replace(' ', '_')

答案 1 :(得分:0)

您可以将整个字典分配到类属性中,并使用字典表示法来访问值。

相关问题