programing

파이썬에서 YAML 파일을 파싱하고 데이터에 접근하는 것?

procenter 2023. 9. 27. 20:49
반응형

파이썬에서 YAML 파일을 파싱하고 데이터에 접근하는 것?

저는 YAML을 처음 접하며 YAML 파일을 파싱하고 파싱된 YAML에서 데이터를 사용/액세스하는 방법을 찾고 있습니다.

YAML 파일을 구문 분석하는 방법에 대한 설명을 접했는데, 예를 들어 PyYAML 튜토리얼 "Python에서 YAML 파일을 구문 분석하는 방법", "Python dict to object?"이 있습니다. 하지만 구문 분석된 YAML 파일에서 데이터에 액세스하는 방법에 대한 간단한 예는 찾을 수 없습니다.

다음과 같은 YAML 파일이 있다고 가정합니다.

 treeroot:
     branch1: branch1 text
     branch2: branch2 text

"branch1 text" 텍스트에 액세스하려면 어떻게 해야 합니까?

"YAML parsing and Python?"이 해결책을 제공하지만, 더 복잡한 YAML 파일에서 데이터에 액세스하는 데 문제가 있었습니다.그리고, 구문 분석된 YAML 파일에서 데이터에 액세스하는 표준 방법이 있는지 궁금합니다. "트리 반복" 또는 "요소 경로" 표기와 유사한 방법이나 XML 파일을 구문 분석할 때 사용할 수 있는 방법이 있는지 궁금합니다.

Since PyYAML'syaml.load()함수는 네이티브 파이썬 데이터 구조에 YAML 문서를 구문 분석합니다. 키나 인덱스로 항목에 액세스할 수 있습니다.연결한 질문의 예를 사용하여 다음을(를)

import yaml
with open('tree.yaml', 'r') as f:
    doc = yaml.load(f)

액세스하려면branch1 text다음을 사용합니다.

txt = doc["treeroot"]["branch1"]
print txt
"branch1 text"

왜냐하면, 당신의 YAML 문서에서,branch1열쇠는 아래에 있습니다.treeroot열쇠.

@Aphex의 솔루션에 대한 참고 자료입니다.

만약에 당신이 마주칠 경우엔..

"YAMLoad Warning: Loader= 없이 yaml.load () 호출... 사용되지 않음"

당신은 사용하기를 원할지도 모릅니다.Loader=yaml.FullLoader아니면Loader=yaml.SafeLoader선택.

import yaml 

with open('cc_config.yml', 'r') as f:
    doc = yaml.load(f, Loader=yaml.FullLoader) # also, yaml.SafeLoader

txt = doc["treeroot"]["branch1"]
print (txt)

언급URL : https://stackoverflow.com/questions/8127686/parsing-a-yaml-file-in-python-and-accessing-the-data

반응형