web-dev-qa-db-ja.com

Pythonでyaml文字列を解析するにはどうすればよいですか?

Yamlファイルの解析方法に関するAPIと多くの例が表示されますが、文字列はどうなりますか?

9
gae123

これは、これまでに例を示して示した最良の方法です。

import yaml

dct = yaml.safe_load('''
name: John
age: 30
automobiles:
- brand: Honda
  type: Odyssey
  year: 2018
- brand: Toyota
  type: Sienna
  year: 2015
''')
assert dct['name'] == 'John'
assert dct['age'] == 30
assert len(dct["automobiles"]) == 2
assert dct["automobiles"][0]["brand"] == "Honda"
assert dct["automobiles"][1]["year"] == 2015
7
gae123

文字列をStringIOでラップする必要はありません。safe_loadメソッドは文字列を受け入れます。

In [1]: yaml.safe_load("{1: 2}")           
Out[1]: {1: 2}
0
Tomas Tomecek