【问题标题】:How to embed Python code into YAML?如何将 Python 代码嵌入 YAML?
【发布时间】:2014-02-08 17:53:32
【问题描述】:

我需要将 Python 代码嵌入到 YAML 文档中。文档最好是可移植的(标准 YAML),或者至少可以被 Python 解析(例如使用 PyYaml)。

事实上,我正在尝试将未修改的字符串包含到 yaml 属性中。应该保留缩进和新行,以便以后可以执行嵌入的 Python 代码。

我找到了“>”,但它删除了换行符。

【问题讨论】:

  • 你到底想做什么?将其保存为字符串,还是嵌入以便可以执行?还是什么?
  • Python 源代码只是文本,文本包含在 YAML 中是微不足道的。或者您是否希望 YAML 处理器在某个时间点(具体时间和方式?)运行代码?那么,成为标准 YAML 的可能性不大。你为什么需要它?
  • 那么如何将文字字符串嵌入到 yaml 中,同时保留缩进和换行符?
  • 以多种方式。 Check the spec.

标签: python yaml


【解决方案1】:

您可以使用literal scalar block style,由| 引入。例如:

代码: | 定义 foo(): 打印“富” # 我们可以毫无困难地包含空行 富()

如果您需要从代码生成文件,那么yaml 模块确实具有允许您控制块样式的功能:Any yaml libraries in Python that support dumping of long strings as block literals or folded blocks?

感谢@delnan 为我提供了这些非常有用的信息。

【讨论】:

    猜你喜欢
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    相关资源
    最近更新 更多