Расширения, которые я сделал в ruamel.yaml , включают опцию для доступа к строке и столбцу для коллекций (YAML: отображение, последовательность, набор, диктант odict / Python, список, набор, orderdict):
import ruamel.yaml
data = ruamel.yaml.load("""
# example
- a
- e
- {x: 3}
- c
""", Loader=ruamel.yaml.RoundTripLoader)
assert data[2].lc.line == 3
assert data[2].lc.col == 2
и строка, и столбец начинают отсчитываться с 0.
Вы правы насчет "вещи" Mark, но стандартные загрузчики PyYAML отбрасывают ее при создании объекта Python.ruamel.yaml.RoundTripLoader
присоединяет информацию строки и столбца от начальной метки к типу коллекции (как это происходит с комментариями и информацией о блоке / стиле потока).