5

我第一次使用Bonobo 。我能够找出基本的例子。我很想知道如何在提取步骤中输入两种不同类型的数据?假设我正在从两个不同的站点抓取数据,如何将它们添加到管道中?

谢谢

4

1 回答 1

1

您可以有两个不同的提取步骤(或 n 个不同的提取步骤)。

例如:

import bonobo


def extract_1():
    yield "x1", "a"
    yield "x1", "b"
    yield "x1", "c"


def extract_2():
    yield "x2", "a"
    yield "x2", "b"
    yield "x2", "c"


def extract_3():
    yield "x3", "a"
    yield "x3", "b"
    yield "x3", "c"


def normalize(name, value):
    yield name.upper(), value


def get_graph(**options):
    graph = bonobo.Graph()
    graph.add_chain(normalize, print, _input=None)
    graph.add_chain(extract_1, _output=normalize)
    graph.add_chain(extract_2, _output=normalize)
    graph.add_chain(extract_3, _output=normalize)
    return graph


if __name__ == "__main__":
    with bonobo.parse_args() as options:
        bonobo.run(get_graph(**options))

请注意,每个节点都有一个先进先出的约束,但是当提取器产生数据时,“标准化”将以随机顺序获取节点。

于 2018-11-09T06:48:23.557 回答