Дамп кортежа в файл YAML в определенном формате - PullRequest
0 голосов
/ 22 декабря 2019

У меня есть определенный формат, который я хотел бы выгрузить кортеж в файл YAML. У меня есть следующий код, который я пытался запустить, чтобы сбросить кортеж в файл YAML. Из приведенного ниже кода я попытался добавить пару кортежей (x, y) в список с помощью append (). После чего я бы сбросил список обратно в файл YAML. Мой вопрос заключается в том, могу ли я сохранить тот же конкретный формат файла, когда я возвращаюсь обратно в файл YAML?

import ruamel.yaml

def addObstacles():

    yaml = ruamel.yaml.YAML()
    with open('input.yaml') as f:
        doc = yaml.load(f)

    x = 5
    y = 6
    doc['map']['obstacles'].append(list((x,y)))

    with open('input.yaml', 'w') as f:
        yaml.dump(doc, f)

Вывод следующего файла выглядит следующим образом:

map:
  dimensions: [8, 8]
  obstacles:
  - !!python/tuple [4, 5]
  - !!python/tuple [2, 0]
  - !!python/tuple [1, 1]
  - !!python/tuple [0, 5]
  - !!python/tuple [2, 5]
  - !!python/tuple [4, 4]
  - !!python/tuple [7, 5]
  - !!python/tuple [1, 4]
  - !!python/tuple [6, 7]
  - !!python/tuple [6, 3]
  - !!python/tuple [1, 7]
  - !!python/tuple [3, 6]
  - - 5
    - 6

Предполагаемый вывод файла выглядит следующим образом:

map:
  dimensions: [8, 8]
  obstacles:
  - !!python/tuple [4, 5]
  - !!python/tuple [2, 0]
  - !!python/tuple [1, 1]
  - !!python/tuple [0, 5]
  - !!python/tuple [2, 5]
  - !!python/tuple [4, 4]
  - !!python/tuple [7, 5]
  - !!python/tuple [1, 4]
  - !!python/tuple [6, 7]
  - !!python/tuple [6, 3]
  - !!python/tuple [1, 7]
  - !!python/tuple [3, 6]
  - !!python/tuple [5, 6]
...