Je vois une API et de nombreux exemples sur la façon d'analyser un fichier yaml, mais qu'en est-il d'une chaîne?
Voici la meilleure façon dont j'ai vu jusqu'à présent démontré avec un exemple:
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
Vous n'avez pas besoin d'envelopper la chaîne dans StringIO, le safe_load
la méthode accepte les chaînes:
In [1]: yaml.safe_load("{1: 2}")
Out[1]: {1: 2}