yaml.load all требует пробела после ":", чтобы распознать правильный ключ. Если он не найдет пространство, он будет использовать всю пару значений ключа в качестве ключа, а затем присвоить None в качестве значения.
См. Ниже: OP print имеет 'B2_key: B2_VAL': None
test_item = "A1: {B1_key: b1_val, B2_key:B2_VAL}"
yaml_iterator = yaml.load_all(test_item, Loader=yaml.Loader)
op = {}
for item in yaml_iterator:
op.update(item)
print(op)
Output print: {'A1': {'B1_key': 'b1_val', 'B2_key:B2_VAL': None}}
Я так понимаю, мы можем просто иметь IP-файл в правильном формате. Но есть ли способ справиться с этим? Я хочу, чтобы пользователи не заботились о пробелах.
Одним из способов может быть проверка OP dict и обработка его там.
Пожалуйста, посоветуйте лучший способ справиться с этим. Заранее спасибо.