Как распарсить закомментированные строки в yaml?
import yaml
from yaml.loader import SafeLoader
with open('C:\\Project\\test.yml', 'r') as f:
data = list(yaml.load_all(f, Loader=SafeLoader))
print(data)
Файл test.yml:
fruits: apple
date: 20210709
finalized: true
project:
# - service:
# image:
# - chegototam-api
- ddd: null
print(data):
[{'fruits': 'apple', 'date': '20210709', 'finalized': True, 'project': [{'ddd': None}]}]
Каким образом получить закомментированные строки?
Ответы (1 шт):
Автор решения: Vetedde
→ Ссылка
PyYAML отбрасывает комментарии на очень низком уровне (in Scanner.scan_to_next_token). По состоянию на 2020 год запрос функции о добавлении поддержки загрузки комментариев все еще откладывается.
Можно попробовать читать построчно и выбирать строки, которые начинаются с "#":
comments = []
with open("./text1.txt") as f:
for line in f.readlines():
if line.startswith("#"):
comments.append(line[1:].strip())
print(comments)
ouput:
['- service:', 'image:', '- chegototam-api']