Parsing a YAML file in Python Example


To parse a YAML file in Python, you will need to make use of the PyYAML library.

You can get this using the pip3

pip3 install pyyaml
YAML file: countries.yaml
- country: 
    name: "USA"
    capital: "Washington, D.C."
    cities:
      - name: "New York City"
        population: 8537673
        tourist_spots:
          - "Statue of Liberty"
          - "Times Square"
          - "Central Park"
      - name: "Los Angeles"
        population: 3979576
        tourist_spots:
          - "Hollywood Walk of Fame"
          - "Universal Studios"
          - "Santa Monica Pier"
- country: 
    name: "France"
    capital: "Paris"
    cities:
      - name: "Paris"
        population: 2140526
        tourist_spots:
          - "Eiffel Tower"
          - "Louvre Museum"
          - "Notre-Dame Cathedral"
      - name: "Nice"
        population: 342637
        tourist_spots:
          - "Promenade des Anglais"
          - "Old Town (Vieux Nice)"
          - "Castle Hill (Colline du ChΓ’teau)"


Python Code to PArse YAML file
'''
Parsing YAML file in Python

Author  : Code2care.org
Version : v 1.0
Date    : 3 July 2023 

'''

import yaml

def parse_yaml_file(yaml_file):
    with open(yaml_file, 'r') as file:
        data = yaml.safe_load(file)
    return data

yaml_file = 'countries.yaml'
parsed_data = parse_yaml_file(yaml_file)


for country in parsed_data:
    print("Country:", country['country']['name'])
    print("Capital:", country['country']['capital'])
    print("Cities:")
    for city in country['country']['cities']:
        print(" > Name:", city['name'])
        print("   Population:", city['population'])
        print("   Tourist Spots:", city['tourist_spots'])
    print("")
Output:
Country: USA
Capital: Washington, D.C.
Cities:
 > Name: New York City
   Population: 8537673
   Tourist Spots: ['Statue of Liberty', 'Times Square', 'Central Park']
 > Name: Los Angeles
   Population: 3979576
   Tourist Spots: ['Hollywood Walk of Fame', 'Universal Studios', 'Santa Monica Pier']

Country: France
Capital: Paris
Cities:
 > Name: Paris
   Population: 2140526
   Tourist Spots: ['Eiffel Tower', 'Louvre Museum', 'Notre-Dame Cathedral']
 > Name: Nice
   Population: 342637
   Tourist Spots: ['Promenade des Anglais', 'Old Town (Vieux Nice)', 'Castle Hill (Colline du ChΓ’teau)']

Facing issues? Have Questions? Post them here! I am happy to answer!

Author Info:

Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.

Follow him on: X

You can also reach out to him via e-mail: rakesh@code2care.org

Copyright Β© Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap