1
我有一個YAML文件,我想解析。如何在PyYAML分析器中掛鉤過濾器?
出於多種原因,我想禁止在錨或使用點.
的只是_
取代它,在解析階段。
簡單地說,我想從這個去:
foo:
bar.baz:
- egg
- spam
到:
foo:
bar_baz:
- egg
- spam
據我所知,這種轉變可能對得到的Python字典進行,但它不是正確的位置:解析器應該拋出一個錯誤,或者它應該替換違規值。
我已經嘗試子類Loader
爲了做這種轉換,但沒有重寫的函數似乎有任何影響。
你們認爲「節點名稱」的
round_trip_load/dump
? YAML 1.2有節點,但根據規範沒有名稱(對於較早的YAML 1.1也是如此,PyYAML可以處理該節點)。你是否將標籤稱爲「節點名稱」或錨?或者你是否在談論將密鑰映射爲節點名稱?如果你給了一個小例子的YAML文件(最好用一個手工「轉換」的版本)。所有這些(錨點,標籤,鍵)都可以隨時更改,但需要不同的編程。 – Anthon已更新。問題很簡單,我只是希望鉤子也會。 :) – JohnW
這是映射節點中鍵值對的關鍵。 'Loader'需要另外一個'Constructor',這並不是微不足道的。 – Anthon