구문 분석하려는 YAML 파일이 있습니다. 여러 이유로PyYAML 파서에 필터를 연결하려면 어떻게해야합니까?
은, 난 그냥 시간을 구문 분석에 _
로 교체 앵커 또는의 점 .
의 사용을 금지하고 싶다. 나는 변환 이런 종류의 결과 파이썬 사전에 수행 할 수 있다는 것을 알고
foo:
bar_baz:
- egg
- spam
하지만이되지 않습니다 : 것과
foo:
bar.baz:
- egg
- spam
:
간단히,이에서 가고 싶어 파서가 오류를 던져야하거나 불쾌한 가치를 대체해야합니다.
이런 유형의 변환을 수행하기 위해 이미 Loader
의 하위 클래스를 만들려고했으나 재정의 된 함수 중 아무 것도 효과가없는 것으로 보입니다.
와
round_trip_load/dump
교체, 긴뿐만 아니라 일을해야합니까? YAML 1.2에는 노드가 있지만 스펙에 따라 이름이 없습니다 (PyYAML이 처리 할 수있는 이전 YAML 1.1에서도 마찬가지입니다). 태그를 "노드 이름"또는 앵커라고 부릅니까? 또는 키를 노드 이름으로 매핑하는 것에 대해 이야기하고 있습니까? 작은 예제 YAML 파일 (수작업으로 "변형 된"버전 포함)을 제공하면 좋을 것입니다. 이 모든 것들 (앵커, 태그, 키)은 즉석에서 변경할 수 있지만 다른 프로그래밍이 필요합니다. – Anthon업데이트 됨. 문제는 간단합니다, 나는 그 고리가 또한 있기를 바랍니다. :) – JohnW
이것은 매핑 노드의 키 값 쌍의 키입니다. 'Loader'는 대안적인'Constructor'를 필요로합니다. – Anthon