0

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

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

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

(这里的 thisinstance 指的是在代码中选择了上面正确的实例。)

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

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

提前谢谢你!

4

2 回答 2

1

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

用于str.replace更改键名

attr = k.replace(' ', '_')
于 2013-02-06T09:43:18.453 回答
0

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

于 2013-02-06T10:21:17.140 回答