0

質問を書くのに苦労したので、検索クエリの書き方が悪いのかもしれませんが、役立つものは何も見つかりませんでした。

次の方法でファイルを解析しようとしています: 正規表現を使用して辞書を作成します。次に、各キーの値がクラスの各属性の値を設定するオブジェクトを作成しようとしました。以下のコードを参照してください。

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

(このインスタンスは、上記のコードの正しいインスタンスの選択を指します。)

これは、キーと属性が「所有者」などの場合に非常にうまく機能します。ただし、キーが「所有者は」などの場合はできません。属性「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 に答える