Вы не указали свой ввод, но так как ваш код ожидает obj
и
не ключ, я предполагаю, что корневой уровень вашего YAML является последовательностью, а не отображением.
Если вы хотите получить комментарии после каждого элемента (например, nr 1
и the last
), вы можете сделать:
import ruamel.yaml
yaml_str = """\
- one # nr 1
- two
- three # the last
"""
yaml = ruamel.yaml.YAML()
data = yaml.load(yaml_str)
for idx, obj in enumerate(data):
comment_token = data.ca.items.get(idx)
if comment_token is None:
continue
print(repr(comment_token[0].value))
, что дает:
'# nr 1\n'
'# the last\n'
Возможно, вы захотите лишить лидирующего восьмигранника и завершающего символа новой строки.
Обратите внимание, что это работает с текущей версией (0.15.61), но
нет никаких гарантий, что это может не измениться.