Version 7 (modified by xi, 11 years ago) (diff)

Add more complex example.


PyYAML is a YAML parser and emitter for Python.


 YAML is a data serialization format designed for human readability and interaction with scripting languages.

PyYAML is a YAML parser and emitter for the Python programming language.

PyYAML features

  • a complete  YAML 1.1 parser. In particular, PyYAML can parse all examples from the specification. The parsing algorithm is simple enough to be ported to C or other language.
  • Unicode support including UTF-8/UTF-16 input/output and \u escape sequences.
  • event-based parser and emitter API (like SAX).
  • high-level API for serializing and deserializing native Python objects (like DOM or pickle).
  • support for all types from the  YAML types repository. A simple extension API is provided.
  • relatively meaningful error messages.

Note that PyYAML is still young and may have some bugs. Furthermore, PyYAML is written in Python and is slow comparing to C based parsers.


PyYAML requires Python 2.3 or higher.

Download and Installation

You may check out PyYAML code from the Subversion repository

$ svn checkout pyyaml-trunk

Install it by running

$ python install


Quick example:

>>> import yaml
>>> print yaml.load("""
... name: Vorlin Laruknuzum
... sex: Male
... class: Priest
... title: Acolyte
... hp: [32, 71]
... sp: [1, 13]
... gold: 423
... inventory:
... - a Holy Book of Prayers (Words of Wisdom)
... - an Azure Potion of Cure Light Wounds
... - a Siver Wand of Wonder
... """)
{'name': 'Vorlin Laruknuzum', 'gold': 423, 'title': 'Acolyte', 'hp': [32, 71],
'sp': [1, 13], 'sex': 'Male', 'inventory': ['a Holy Book of Prayers (Words of Wisdom)',
'an Azure Potion of Cure Light Wounds', 'a Siver Wand of Wonder'], 'class': 'Priest'}
>>> print yaml.dump({'name': "The Cloak 'Colluin'", 'depth': 5, 'rarity': 45,
... 'weight': 10, 'cost': 50000, 'flags': ['INT', 'WIS', 'SPEED', 'STEALTH']})
name: The Cloak 'Colluin'
rarity: 45
weight: 10
cost: 50000
depth: 5

For more details, please check PyYAML Documentation.

Development and bug reports

You may check out the PyYAML source code from  PyYAML SVN repository.

If you find a bug in PyYAML, please file a bug report. You may review open bugs through the list of open tickets.

You may discuss PyYAML at  the YAML-core mailing list.

Author and copyright

The PyYAML module is written by Kirill Simonov.

PyYAML is released under the MIT license.