执行YAML文件中嵌入的Python代码

Sme*_*med 2 python yaml pyyaml

我想知道是否有可能执行嵌入在YAML文件中的Python代码。例如,我的YAML文件当前包含一个列表:

list: [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

但是我更愿意使用numpy在我的YAML文件中输入以下列表:

list: np.arange(1,5)
Run Code Online (Sandbox Code Playgroud)

我看到了“ 如何将Python代码嵌入到YAML中? ”,它描述了如何使用文字标量块样式来嵌入Python代码,但是没有描述如何实际执行嵌入的代码。

Tho*_*eil 5

有可能的。只要您的YAML文件名为,以下Python脚本就可以执行此操作data.yml

import yaml
with open("data.yml", "r") as f:
    data = yaml.load(f)
exec data['list']
Run Code Online (Sandbox Code Playgroud)

还要确保在YAML文件的Python代码中添加导入:

list: |
    import numpy as np
    print np.arange(1,5)
Run Code Online (Sandbox Code Playgroud)