[python] PyYAML로 YAML 파일의 데이터를 분석하여 특정 패턴 찾기

PyYAML은 Python에서 YAML 파일을 파싱하고 생성하기 위한 라이브러리입니다. 이 라이브러리를 사용하여 YAML 파일의 데이터를 분석하고 특정 패턴을 찾을 수 있습니다.

다음은 PyYAML을 사용하여 YAML 파일을 읽고 데이터를 분석하여 특정 패턴을 찾는 예제 코드입니다.

import yaml

def search_pattern_in_yaml(pattern, yaml_file):
    with open(yaml_file, 'r') as file:
        data = yaml.safe_load(file)
        if isinstance(data, dict):
            search_dict_for_pattern(pattern, data)
        elif isinstance(data, list):
            for item in data:
                search_dict_for_pattern(pattern, item)

def search_dict_for_pattern(pattern, data):
    for key, value in data.items():
        if isinstance(value, str) and pattern in value:
            print(f"Pattern '{pattern}' found in value '{value}'")
        elif isinstance(value, dict):
            search_dict_for_pattern(pattern, value)
        elif isinstance(value, list):
            for item in value:
                search_dict_for_pattern(pattern, item)

yaml_file = "example.yaml"
pattern = "example pattern"

search_pattern_in_yaml(pattern, yaml_file)

위 예제 코드에서 search_pattern_in_yaml 함수는 YAML 파일과 찾고자 하는 패턴을 인자로 받습니다. yaml.safe_load 함수를 사용하여 YAML 파일을 읽고 데이터를 파이썬 객체로 변환한 뒤, search_dict_for_pattern 함수를 호출하여 특정 패턴을 찾습니다. 이 함수는 재귀적으로 데이터를 탐색하며, 패턴을 찾으면 해당 값을 출력합니다.

예제 YAML 파일(example.yaml)은 다음과 같습니다.

person:
  name: John Doe
  age: 30
  address:
    city: New York
    street: 123 Street
  hobbies:
    - reading
    - coding
  job: Developer

위 예제 코드를 실행하면, YAML 파일에서 example pattern이라는 패턴을 가진 값을 찾아 출력합니다.

참고 자료: