web-dev-qa-db-ja.com

PythonでYAMLファイルを解析し、データにアクセスしますか?

私はYAMLが初めてで、YA​​MLファイルを解析し、解析されたYAMLのデータを使用/アクセスする方法を探しています。

PyYAML tutorial 、 " How canなど、YAMLファイルの解析方法に関する説明に出くわしましたPythonでYAMLファイルを解析します 」、「 Python dictをオブジェクトに変換しますか? 」 、しかし、私が見つけていないのは、解析されたYAMLファイルからデータにアクセスする方法の簡単な例です。

次のようなYAMLファイルがあると仮定します。

 treeroot:
     branch1: branch1 text
     branch2: branch2 text

「branch1 text」というテキストにアクセスするにはどうすればよいですか?

YAML解析とPython? 」は解決策を提供しますが、より複雑なYAMLファイルからデータにアクセスする際に問題が発生しました。そして、解析されたYAMLファイルのデータにアクセスする標準的な方法があるのか​​、おそらく「 tree iteration 」または「 elementpath "表記またはXMLファイルの解析時に使用されるもの

73
9monkeys

PyYAMLのyaml.load()関数はYAMLドキュメントをネイティブPythonデータ構造に解析するため、キーまたはインデックスでアイテムにアクセスできます。リンクした質問の例を使用して:

import yaml
with open('tree.yaml', 'r') as f:
    doc = yaml.load(f)

branch1 textにアクセスするには、次を使用します。

txt = doc["treeroot"]["branch1"]
print txt
"branch1 text"

yAMLドキュメントでは、branch1キーの値がtreerootキーの下にあるためです。

138
Aphex