How to read and write to the YAML file in Python
Published on Aug. 22, 2023, 12:13 p.m.
YAML or YAML Ain’t Markup Language is a case sensitive and human-friendly data serialization language .
For reading and writing to the YAML file, we first need to install the PyYAML package.
$ pip install pyyaml
Creating YAML config file in Python
We can write data to the YAML file using yaml.dump() method.
We are writing the dictionary article_info to the YAML file.
import yaml
article_info = [
{
'Details': {
'domain' : 'www.tutswiki.com',
'language': 'python',
'date': '11/09/2020'
}
}
]
with open("tutswiki.yaml", 'w') as yamlfile:
data = yaml.dump(article_info, yamlfile)
print("Write successful")
File: tutswiki.yaml
- Details:
date: 11/09/2020
domain: www.tutswiki.com
language: python
Note: sort_keys parameter in dump() method can be used to sort the keys in ascending order.
sorted = yaml.dump(data, sort_keys = True)
Reading a key from YAML config file
We can read the data using yaml.load() method .
import yaml
with open("tutswiki.yaml", "r") as yamlfile:
data = yaml.load(yamlfile, Loader=yaml.FullLoader)
print("Read successful")
print(data)
Read successful
[{'Details': {'date': '11/09/2020', 'domain': 'www.tutswiki.com', 'language': 'python'}}]
Process finished with exit code 0
Updating a key in YAML config file
import yaml
article_info = [
{
'Details': {
'domain' : 'www.tutswiki.com',
'language': 'python',
'date': '11/09/2020'
}
}
]
with open("tutswiki.yaml", "r") as yamlfile:
data = yaml.load(yamlfile, Loader=yaml.FullLoader)
print(data)
print("Read successful")
data[0]['Details']['language'] = 'java'
print("Value of language updated from 'python' to 'java'")
yamlfile.close()
with open("tutswiki.yaml", 'w') as yamlfile:
data1 = yaml.dump(data, yamlfile)
print(data)
print("Write successful")
yamlfile.close()
File: tutswiki.yaml
- Details:
date: 11/09/2020
domain: www.tutswiki.com
language: java