2 votes

Sortie de yaml au format dict

J'ai une liste de dictée qui ressemble à ceci

data = {'items': [{'id': '1', 'desc': 'Item 1', 'cat': 'cat1'}], 'categories': [{ 'id': 'cat1', 'desc': 'category number 1' }]}

Je veux vider ce fichier au format yaml suivant

---
items:
    - { id: 'it1', desc: 'item number 1', cat: 'cat1' }
categories:
    - { id: 'cat1', desc: 'category number 1' }

en utilisant yaml.dump(data) produit un yaml au format suivant

categories:
- desc: category number 1
  id: cat1
items:
- cat: cat1
  desc: Item 1
  id: '1'

Que dois-je ajouter pour changer cela ? J'ai essayé de définir le paramètre default_flow_style=False sans aucune différence.

2voto

tinita Points 168

Dans PyYAML, l'option default_flow_style a trois valeurs différentes :

  • True : tout est déversé dans le style de flux
  • False : tout est mis en bloc
  • None : seul le niveau le plus bas des dicts et des listes est déversé dans le style flow.

Nous avons changé la valeur par défaut de None a False dans la version 5.1 car de nombreuses personnes s'en sont plaintes. Vous devez donc default_flow_style=None .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X