首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在造纸厂参数化Python字典?

如何在造纸厂参数化Python字典?
EN

Stack Overflow用户
提问于 2019-05-27 17:36:21
回答 2查看 1.1K关注 0票数 2

我想在一个变量中传递所有参数。为了实现这一点,我在我的Python客户机中传递了一个用于造纸厂的字典,使用:

代码语言:javascript
复制
params = {"aviral":"srivastava"}
pm.execute_notebook( 'path/to/input.ipynb', 'path/to/output.ipynb', parameters = params )

现在,我想从bash运行相应的命令。在document中,它声明:

代码语言:javascript
复制
papermill local/input.ipynb s3://bkt/output.ipynb -p alpha 0.6 -p l1_ratio 0.1

但没有任何地方给出了如何传递字典。

我尝试了许多排列和组合,比如:

papermill test_params.ipynb params_output.ipynb -p params {"aviral":"srivastava"}

papermill test_params.ipynb params_output.ipynb -p params '{"aviral":"srivastava"}'

我还读取并传递了一个格式为:'{"aviral":"srivastava"}'dict,然后json.loads将执行此工作。但是我没有转换输入的自由。它必须立即在脚本中使用。

只需一个最小的脚本来实际检查传递的变量的类型:

代码语言:javascript
复制
params = {} # I tag this with `parameter`
print(type(params))
print(params)

是的,我看到params变量在运行造纸厂时发生了变化,但传递的值是一个完整的字符串。

EN

回答 2

Stack Overflow用户

发布于 2019-05-28 09:32:45

在您的例子中,您不能直接修改模板notebook来解析字符串输入,那么使用一个您调用的python脚本来执行papermill怎么样?这允许您将字符串解析到python字典中,然后将其传递给造纸厂执行。您还可以通过相同的方式传递笔记本名称。

票数 1
EN

Stack Overflow用户

发布于 2019-08-10 19:18:39

您是否尝试过使用YAML字符串或文件?

代码语言:javascript
复制
$papermill local/input.ipynb s3://bkt/output.ipynb -f parameters.yaml

从文档中:

使用YAML通过-y、-b或-f传递参数时,参数值可以是数组或字典

https://papermill.readthedocs.io/en/latest/usage-execute.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56323401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档