gpt4 book ai didi

python - 如何在复合实体中使用从其他实体产生的字典?

转载 作者:行者123 更新时间:2023-12-04 12:57:21 25 4
gpt4 key购买 nike

例如,我有一个名为 的实体。启动负载 ,它产生一个 字典整数 , 就像是 :

@solid(
output_defs=[
OutputDefinition(name='l_dict', is_required=False),
OutputDefinition(name='l_int', is_required=False)
],
)
def initiate_load(context):
....
....

yield Output(l_dict, output_name='l_dict')
yield Output(l_int, output_name='l_int')

我也有一个 Composite_solid ,比方说 call_other_solid_composite
我路过 l_dictl_int到此 composite_solid我正在使用 l_dict获取映射到其键的值。就像是。
@composite_solid
def call_other_solid_composite(p_dict,p_int):
l_val1 = p_dict['val1']
...
...

然后我收到一个错误: TypeError: 'InputMappingNode' object is not subscriptable .
我到处搜索,但找不到解决方案。文档也没有帮助。我有需要解析这些值的用例。
任何帮助将不胜感激。

最佳答案

与用@pipeline 修饰的方法类似,您不应将用@composite_solid 修饰的方法视为常规的python 方法。 Dagster 会将它们包裹起来,让它变得完全不同。这就是为什么p_dict参数不能在方法内部用作常规方法参数。
为了实现你想要的,你有几个选择:

  • 通过p_dict参数直接在另一个实体中,在这个实体里面你可以做 l_val1 = p_dict['val1']
  • 在您现在在 initiate_load 中获得的 yield 旁边方法,你可以产生p_dict['val1']也作为输出。这允许您同时使用 dict 和 'val1' 值作为其他实体(也在您的复合中)的输入
  • 你可以在你的复合实体中有一个实体,产生 p_dict['val1'] ,这允许您使用此值作为复合中其他实体的输入。

  • 希望这可以帮助。作为引用,可以在 here 中找到有关复合固体的文档。 .
    对您提供的片段的简短评论。 Dagster 有一个非常简洁的打字系统,最好尽可能多地使用它。

    关于python - 如何在复合实体中使用从其他实体产生的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65022207/

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