Чтобы распечатать документ YAML, как вы его загрузили, вы должны выгрузить загруженные данные в стандартный вывод.Я рекомендую использовать ruamel.yaml
, так как он поддерживает этот тип циклического отключения намного лучше, чем PyYAML (отказ от ответственности: я являюсь автором ruamel.yaml).PyYAML поддерживает только YAML 1.1, и это было устаревшим в 2009 году.
Если ваш ввод в xDQ_Datenqualitaetsvereinbarung_1003222_2018-10-16_v22yaml.sec
:
projectElements:
company:
supplier:
dataSupplierInformation:
name: "Textilfabrik GmbH & Co. KG"
address: {strasse: "Industriestr 1", plz: "72555", ort: "Metzingen", land: "Germany"}
xdqNr: 1001001
dataUserInformation:
name: "Handel24 Deutschland AG"
address: {strasse: "Handelsweg 42", plz: "74078", ort: "Heilbronn", land: "Germany"}
xdqNr: 1001002
documentinformation:
dokumentname: "Datenqualitaetsvereinbarung"
xdqNr: 1003222
И ваша программа:
import sys
from pathlib import Path
import ruamel.yaml
infile = Path('xDQ_Datenqualitaetsvereinbarung_1003222_2018-10-16_v22yaml.sec')
yaml = ruamel.yaml.YAML()
yaml.preserve_quotes = True
data = yaml.load(infile)
yaml.dump(data, sys.stdout)
ваш вывод будет:
projectElements:
company:
supplier:
dataSupplierInformation:
name: "Textilfabrik GmbH & Co. KG"
address: {strasse: "Industriestr 1", plz: "72555", ort: "Metzingen", land: "Germany"}
xdqNr: 1001001
dataUserInformation:
name: "Handel24 Deutschland AG"
address: {strasse: "Handelsweg 42", plz: "74078", ort: "Heilbronn", land: "Germany"}
xdqNr: 1001002
documentinformation:
dokumentname: "Datenqualitaetsvereinbarung"
xdqNr: 1003222
, и вы не сможете получить точно такой же вывод с помощью PyYAML.