Python 3.x 在“.yml”文件中传递一个“lambda”函数

Python 3.x 在“.yml”文件中传递一个“lambda”函数,python-3.x,yaml,Python 3.x,Yaml,我需要通过.yml文件传递所有变量。虽然传递str变量没有问题,但我不知道如何传递更复杂的东西,例如pythons'lambda函数 以下代码演示了我的问题: .yml文件: { csv_2_df: { time_stamp_params: { column_name: '@timestamp', extraction_lambda: lambda s: s[1:11] + ' ' + s[12:-2], format

我需要通过
.yml
文件传递所有变量。虽然传递
str
变量没有问题,但我不知道如何传递更复杂的东西,例如
python
s'
lambda
函数

以下代码演示了我的问题:

.yml
文件:

{
    csv_2_df: {
        time_stamp_params: {
         column_name: '@timestamp',
         extraction_lambda: lambda s: s[1:11] + ' ' + s[12:-2],
         format: '%Y-%m-%d %H:%M:%S.%f'
        }
    }
}
因此,在上面的示例中,如果我尝试用

with open(YAML_PATH, 'r') as f:
    configs = yaml.full_load(f)
它抛出一个异常:

yaml.parser.ParserError: while parsing a flow mapping
  in "configs.yml", line 14, column 28
expected ',' or '}', but got ':'
  in "configs.yml", line 16, column 37

那么,如何在
.yml
文件中传递
python
s'
lambda
函数呢


提前感谢您的帮助。

您可以将lambda表达式作为字符串存储在yml中,并使用eval从字符串转换到函数。这很有效!谢谢你为什么不把它作为答案贴出来,这样我就可以相信你了?很高兴我能帮上忙。请记住,从安全角度来看,
eval
非常不安全。