Ваш 'Dallas Cowboys'
отображается как первый элемент списка, но на самом деле это CommentedSeq
, который является подклассом списка, который может содержать комментарии и другую информацию.
Однако , вы можете удалить элемент из этого, как и из любого списка, используя del
::
import sys
import ruamel.yaml
yaml_str = """\
sports:
football:
- Dallas Cowboys
- Miami Dolphins
- San Francisco 49ers
"""
yaml = ruamel.yaml.YAML()
yaml.indent(sequence=4, offset=2)
data = yaml.load(yaml_str)
print('debug:', type(data['sports']['football']),
isinstance(data['sports']['football'], list), '\n')
del data['sports']['football'][0]
yaml.dump(data, sys.stdout)
, что дает:
debug: <class 'ruamel.yaml.comments.CommentedSeq'> True
sports:
football:
- Miami Dolphins
- San Francisco 49ers
Если у вас есть только опция pop, вам нужно добавить элемент 0
, поэтому замена строки del
в приведенном выше тексте на:
data['sports']['football'].pop(0)
даст тот же результат.
Я надеюсь, что любой из них можно сделать с помощью yamlpath