In Python, you can work with YAML (YAML Ain’t Markup Language) data using the pyyaml
library. YAML is a human-readable data serialization format that is often used for configuration files and data exchange between languages with different data structures. Here’s how you can use pyyaml
to work with YAML in Python:
- Installation: First, you need to install the
pyyaml
library if you haven’t already. You can install it using pip:
pip install pyyaml
- Loading YAML: You can load YAML data from a file or a YAML-formatted string into Python data structures using the
yaml
module:
import yaml
# Load YAML data from a file
with open('data.yaml', 'r') as file:
data = yaml.load(file, Loader=yaml.FullLoader)
# Load YAML data from a string
yaml_string = """
key1: value1
key2:
- item1
- item2
"""
data = yaml.load(yaml_string, Loader=yaml.FullLoader)
The yaml.FullLoader
is used to load the entire YAML document and is safer than the default loader for untrusted input.
- Working with YAML Data: Once you’ve loaded the YAML data, you can work with it like any other Python data structure. For example:
# Accessing values
print(data['key1'])
# Iterating through a list
for item in data['key2']:
print(item)
# Modifying values
data['key1'] = 'new_value'
# Converting Python data to YAML string
yaml_string = yaml.dump(data, default_flow_style=False)
- Dumping YAML: You can also convert Python data structures back into a YAML-formatted string and write it to a file:
import yaml
data = {
'key1': 'value1',
'key2': ['item1', 'item2']
}
# Convert Python data to YAML string
yaml_string = yaml.dump(data, default_flow_style=False)
# Write YAML string to a file
with open('output.yaml', 'w') as file:
file.write(yaml_string)
Remember to handle exceptions and errors appropriately when working with files, especially when using the open
function, and always sanitize input if working with untrusted data to prevent security issues.
That’s a basic overview of how to work with YAML in Python using the pyyaml
library. You can use these methods to load, manipulate, and save YAML data in your Python applications.