Si votre fichier YAML ressemble à ceci :
# tree format
treeroot:
branch1:
name: Node 1
branch1-1:
name: Node 1-1
branch2:
name: Node 2
branch2-1:
name: Node 2-1
Et vous avez installé PyYAML
comme ça :
pip install PyYAML
Et le code Python ressemble à ceci :
import yaml
with open('tree.yaml') as f:
# use safe_load instead load
dataMap = yaml.safe_load(f)
La variable dataMap
contient maintenant un dictionnaire avec les données de l'arbre. Si vous imprimez dataMap
en utilisant PrettyPrint, vous obtiendrez quelque chose comme :
{
'treeroot': {
'branch1': {
'branch1-1': {
'name': 'Node 1-1'
},
'name': 'Node 1'
},
'branch2': {
'branch2-1': {
'name': 'Node 2-1'
},
'name': 'Node 2'
}
}
}
Nous avons donc vu comment introduire des données dans notre programme Python. La sauvegarde des données est tout aussi simple :
with open('newtree.yaml', "w") as f:
yaml.dump(dataMap, f)
Vous avez un dictionnaire, et vous devez maintenant le convertir en un objet Python :
class Struct:
def __init__(self, **entries):
self.__dict__.update(entries)
Alors vous pouvez utiliser :
>>> args = your YAML dictionary
>>> s = Struct(**args)
>>> s
<__main__.Struct instance at 0x01D6A738>
>>> s...
et suivre " Convertir un dict Python en objet ".
Pour plus d'informations, vous pouvez consulter le site pyyaml.org y este .
0 votes
Je suggère d'utiliser
python-box
.0 votes
Comment analyser un fichier YAML en Python ? n'est certainement pas la même question que Comment analyser/lire un fichier YAML dans un objet Python ? L'analyse syntaxique générale et l'analyse syntaxique dans une structure orientée objet sont deux choses différentes. Je vote pour la réouverture - et voir combien de votes positifs les réponses ici ont ...