{'key': 'value'} 它有效。以同样-6ren">
gpt4 book ai didi

python - Kedro:如何从命令行传递 "list"参数?

转载 作者:行者123 更新时间:2023-12-03 08:41:53 32 4
gpt4 key购买 nike

我想通过命令行控制kedro参数。

根据docs ,kedro可以指定运行时参数,如下:

kedro run --params key:value
> {'key': 'value'}

它有效。以同样的方式,我尝试指定 list 参数,如下所示:

kedro run --params keys:['value1']
> {'keys': '[value1]'}

它不起作用,因为 kedro 解释不是列表而是 str。可能,this answer可能有关系。

希望提及一些事情,使 kedro 能够像 yaml 一样评估列表参数。

最佳答案

默认情况下,kedro 命令行不会将参数类型转换为更简单的数字类型。更复杂的参数应通过 parameters.yml 文件处理。

也就是说,如果您确实想要这样做,您可以修改您的kedro_cli.py来支持这一点。具体来说,您需要修改文件中的 _split_params 回调函数。这里最简单的事情可能是更改读取的行

result[key] = _try_convert_to_numeric(value)

它处理将简单数字类型解析为

result[key] = json.loads(value)

使其能够解析更广泛的类型。也就是说,将您传入的 CLI 参数解析为 json(因此您还需要注意引号并确保传入有效的 json 语法。

如果这不起作用,您可以尝试添加自己的语法并在该函数中解析它。但是,我的建议是避免依赖 CLI 中的脆弱字符串参数评估,而使用 parameters.yml 代替。

关于python - Kedro:如何从命令行传递 "list"参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62492785/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com