logo

Python에서 YAML 파일 구문 분석

YAML은 Yet Another Markup Language의 약어입니다. 또는 YAML은 데이터를 교환하는 데 사용되는 데이터 형식인 마크업 언어가 아닙니다. YAML은 데이터만 저장할 수 있고 명령은 저장할 수 없습니다. XML 및 JSON 데이터 형식과 유사합니다. 이 기사에서는 예제와 함께 Python에서 YAML 파일을 구문 분석하는 개념에 대해 자세히 살펴보겠습니다.

Python에서 YAML 파일 구문 분석

PyYAML Python 프로그래밍의 모듈은 Python용 파서로 간주됩니다. 이 라이브러리를 사용하면 YAML 파일 읽기 또는 쓰기와 같은 YAML 파일에 대한 다양한 작업을 수행할 수 있습니다. Python에서 이 PyYAML 모듈을 사용하여 직렬화 및 YAML 데이터 유지를 수행할 수도 있습니다.

PyYAML 모듈을 사용하려면 다음 위치에 설치해야 합니다. 파이썬 아래 명령을 실행하여 :



pip install pyyaml>

YAML 파일은 두 가지 다른 확장자를 사용하여 저장됩니다. .yaml 그리고 .yml . YAML 파일을 구문 분석해야 하므로 다음 위치에 데이터로 구성된 두 개의 YAML 파일을 만들었습니다. 핵심 가치 쌍. 기사의 예로 다음 YAML 파일을 사용하겠습니다.

geeksforgeek.yml

UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills:  -Python  -SQL  -Django  -Javascript>

multi_docs.yml

--- UserName: techcodeview.com Password: GFG@123 Phone: 1234567890 Website: techcodeview.com Skills:  -Python  -SQL  -Django  -Javascript ... --- UserName: Google Password: google@123 Phone: 1234567890 Website: google.com Skills:  -Python  -SQL  -Django  -Javascript ... --- UserName: Yahoo Password: yahoo@123 Phone: 1234567890 Website: yahoo.com Skills:  -Python  -SQL  -Django  -Javascript>

이제 Python에서 YAML 파일을 구문 분석하는 데 사용할 수 있는 몇 가지 방법을 살펴보겠습니다.

load() 함수 사용

YAML 모듈의 yaml.load() 함수는 YAML 데이터나 객체를 읽어들이는 데 사용됩니다. 파이썬 사전 . 수많은 키-값 쌍(구성 파일)으로 구성된 YAML 데이터가 있을 수 있으므로 이러한 파일을 읽으려면 YAML 데이터를 Python으로 역직렬화하는 load() 함수가 도움이 될 수 있습니다. 그만큼 짐을 싣는 사람 load() 함수의 매개변수는 다음과 같이 설정됩니다. 세이프로더 , YAML의 데이터를 안전하게 로드하려는 의도입니다. 이는 신뢰할 수 없는 소스에서 입력을 가져오는 시나리오에서 유용합니다.

파이썬3




자식 모두 추가
import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.load(f, Loader>=>yaml.SafeLoader)> > # Print the values as a dictionary> print>(data)>

>

>

산출:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890,  'Website': 'techcodeview.com>

full_load() 함수 사용

yaml.full_load() 함수는 키-값 쌍의 형태로 YAML 파일의 내용을 구문 분석하는 데 사용됩니다. 그런 다음 Python을 사용하여 얻다() 방법을 사용하면 YAML 파일에서 특정 데이터를 가져올 수 있습니다.

파이썬3




import> yaml> with>open>(>'geeksforgeeks.yml'>,>'r'>) as f:> >data>=> yaml.full_load(f)> > # Print the values as a dictionary> output>=> {> >'UserName'>: data.get(>'UserName'>),> >'Password'>: data.get(>'Password'>),> >'phone'>: data.get(>'Phone'>),> >'Skills'>:>' '>.join(data.get(>'Skills'>, []))> }> print>(output)>

>

>

산출:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'phone': 1234567890,  'Skills': '- P y t h o n - S Q L - D j a n g o - J a v a s c r i p t'}>

safe_load() 함수 사용

Python에서 YAML 파일을 로드하는 또 다른 방법은 safe_load() 메서드를 사용하는 것입니다. 신뢰할 수 없는 소스에서 데이터를 로드할 때 load() 메서드의 SafeLoader 매개 변수 대신 사용할 수 있습니다.

파이썬3




import> yaml> with>open>(>'geeksforgeeks.yml'>) as f:> >dict> => yaml.safe_load(f)> >print>(>dict>)>

>

>

자바스크립트 전역 변수

산출:

{'UserName': 'techcodeview.com', 'Password': 'GFG@123 *', 'phone': 987909890,  'website': 'techcodeview.com 'Skills': '-Python -SQL -Django -Rest Framework -JavaScript'}>

load_all() 함수 사용

load_all() 메서드는 단일 파일에 있는 YAML 문서를 로드하려고 할 때 사용됩니다. 그만큼 짐을 싣는 사람 load() 함수의 매개변수는 다음과 같이 설정됩니다. 세이프로더 , YAML의 데이터를 안전하게 로드하려는 의도입니다. 이는 신뢰할 수 없는 소스에서 입력을 가져오는 시나리오에서 유용합니다.

파이썬3




import> yaml> from> yaml.loader>import> SafeLoader> # open yaml file in read> with>open>(>'multiple_documents.yml'>,>'r'>) as f:> >yaml_data>=> list>(yaml.load_all(f, Loader>=>SafeLoader))> >print>(yaml_data)>

>

>

산출:

[{'UserName': 'techcodeview.com', 'Password': 'GFG@123', 'Phone': 1234567890,  'Website': 'techcodeview.com {'UserName': 'Google', 'Password': 'google@123', 'Phone': 1234567890,  'Website': 'google.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'},  {'UserName': 'Yahoo', 'Password': 'yahoo@123', 'Phone': 1234567890,  'Website': 'yahoo.com', 'Skills': '-Python -SQL -Django -Resst Framework -Javascript'}]>