[python] PyYAML을 사용하여 YAML 파일의 데이터를 다른 포맷으로 변환하기 (SQL, NoSQL 등)

YAML은 사람이 읽기 쉽고 이해하기 쉬운 형식의 데이터 직렬화 언어입니다. 그러나 때로는 YAML 형식의 데이터를 다른 형식으로 변환해야 할 때가 있습니다. 이 문서에서는 Python의 PyYAML 라이브러리를 사용하여 YAML 파일의 데이터를 SQL이나 NoSQL 등의 다른 형식으로 변환하는 방법을 알아보겠습니다.

1. PyYAML 설치하기

먼저, PyYAML 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 PyYAML을 설치할 수 있습니다.

pip install pyyaml

2. YAML 파일 읽기

변환할 YAML 파일을 읽어와야 합니다. 아래의 예제 코드는 data.yml 파일을 읽어옵니다.

import yaml

with open('data.yml', 'r') as file:
    data = yaml.safe_load(file)

3. 데이터 변환하기

이제 PyYAML을 사용하여 읽어온 YAML 데이터를 원하는 형식으로 변환할 수 있습니다. 예를 들어, YAML 데이터를 SQL 형식으로 변환하는 경우에는 다음과 같이 할 수 있습니다.

def convert_to_sql(data):
    sql_queries = []

    for entry in data:
        query = f"INSERT INTO table_name (column1, column2) VALUES ({entry['field1']}, {entry['field2']})"
        sql_queries.append(query)

    return "\n".join(sql_queries)

위의 예제에서는 YAML 데이터의 각 항목을 SQL INSERT 쿼리로 변환하고, 그 결과를 리스트에 추가합니다. 마지막으로, 리스트의 요소들을 개행 문자로 연결하여 하나의 문자열로 변환해 반환합니다.

다른 형식으로의 변환도 비슷한 방법으로 수행할 수 있습니다. 예를 들어, NoSQL 형식으로 변환하는 경우에는 해당 NoSQL 데이터베이스의 API를 사용하여 데이터를 저장할 수 있습니다.

4. 변환된 데이터 저장하기

마지막으로, 변환된 데이터를 원하는 형식으로 저장할 수 있습니다. 예를 들어, SQL 쿼리를 파일에 저장하는 경우에는 다음과 같이 할 수 있습니다.

def save_to_file(data, filename):
    with open(filename, 'w') as file:
        file.write(data)

위의 예제에서는 변환된 SQL 쿼리를 filename으로 지정된 파일에 저장합니다.

5. 전체 코드

import yaml

def convert_to_sql(data):
    sql_queries = []

    for entry in data:
        query = f"INSERT INTO table_name (column1, column2) VALUES ({entry['field1']}, {entry['field2']})"
        sql_queries.append(query)

    return "\n".join(sql_queries)

def save_to_file(data, filename):
    with open(filename, 'w') as file:
        file.write(data)

with open('data.yml', 'r') as file:
    data = yaml.safe_load(file)

converted_data = convert_to_sql(data)
save_to_file(converted_data, 'output.sql')

위의 코드는 data.yml 파일을 읽어와서 SQL 쿼리 형식으로 변환한 후, output.sql 파일에 저장하는 예제입니다.

결론

이렇게 Python의 PyYAML 라이브러리를 사용하여 YAML 파일의 데이터를 다른 형식으로 변환할 수 있습니다. 변환할 대상 형식에 따라 알맞은 로직을 작성하여 원하는 형태로 데이터를 변환하고 저장할 수 있습니다.