YAML in Python: Difference between revisions
Jump to navigation
Jump to search
(→PyYAML) |
|||
Line 43: | Line 43: | ||
=Configure <tt>yaml.dump()</tt> to render blank instead of <tt>null</tt>= | =Configure <tt>yaml.dump()</tt> to render blank instead of <tt>null</tt>= | ||
PyYAML <code>dump()</code> uses <code>Representer()</code> to represent <code>None</code>. By default, the representer <code>dump()</code> is configured with represents <code>None</code> as "null". To change that: | |||
1. Define a method that "represents" <code>None</code> | |||
<syntaxhighlight lang='py'> | |||
</syntaxhighlight> | |||
2. Add it to the module: | |||
<syntaxhighlight lang='py'> | |||
</syntaxhighlight> | |||
<font color=darkkhaki>what is the lifecycle of the method registered to the module?</font> |
Revision as of 20:21, 3 August 2022
Internal
PyYAML
PyYAML provides YAML serialization/deserialization in Python.
Installation
pip install pyyaml
requirements.txt
:
pyyaml == 5.3.1
To install, see the "Installation" section from https://pyyaml.org/wiki/PyYAMLDocumentation.
Overview
Deserialize YAML
import yaml
with open('some-file.yaml', 'rt') as f:
content = f.read()
data = yaml.load(content, Loader=yaml.Loader)
Serialize YAML
import yaml
# with the default flow style, the document is rendered in a non-indented manner
print (yaml.dump(data, default_flow_style=False))
Suggestions on how to safely recursively navigate a complex data structure:
Configure yaml.dump() to render blank instead of null
PyYAML dump()
uses Representer()
to represent None
. By default, the representer dump()
is configured with represents None
as "null". To change that:
1. Define a method that "represents" None
2. Add it to the module:
what is the lifecycle of the method registered to the module?