2014-01-19 3 views
2

Мне нужно вставить код Python в документ YAML. Документ должен быть предпочтительно переносимым (стандартный YAML) или, по крайней мере, анализируемым Python (например, PyYaml).Как вставить код Python в YAML?

На самом деле я пытаюсь включить неизмененные строки в атрибуты yaml. Отступы и новые строки должны быть сохранены, чтобы впоследствии внедрить внедренный код Python.

Я нашел «>», но он удаляет символы перевода строки.

+0

Что вы пытаетесь сделать точно? Сохраните его как строку или вставьте, чтобы он мог быть выполнен? Или что? –

+0

Исходный код Python - это просто текст, а текст тривиально включать в YAML. Или вы ожидаете, что код будет запущен в какой-то момент (когда точно и как?) Процессором YAML? Тогда не шанс снежного кома в аду быть стандартным ЯМЛ. И зачем вам это нужно? – delnan

+0

то как буквальная строка может быть встроена в yaml, сохраняя отступы и новые строки? – user2245644

ответ

5

Вы можете использовать literal scalar block style, добавленные с |. Например:

 
code: | 
    def foo(): 
     print "foo" 

    # we can include blank lines with no difficulty 

    foo() 

Если вам нужно создать файл с кодом, то yaml модуль имеет функциональность, которая позволяет контролировать стиль блока: Any yaml libraries in Python that support dumping of long strings as block literals or folded blocks?

Благодаря @delnan указал мне в этом направлении очень полезная информация.

Смежные вопросы