如何将 Python DataFrame 传递给 UiPath?

How to pass a Python DataFrame to UiPath?

我正在使用 UiPath Python Activities Pack(获取 Python 对象)调用 python 函数,它 returns 一个 DataFrame 以便在 UiPath 中使用它。不幸的是,UiPath 无法像 DataTable 一样将 DataFrame 转换为 .Net 数据类型。

即使我尝试将 DataFrame 转换为任何其他格式(字符串、numpy 数组、html 等)它也不起作用,尽管文档明确提到支持所有数据类型。 Python 脚本完成它的工作,将 DataFrame 的内容存储在 Excel 文件中,我当然可以只读取 Excel 文件。我只是想知道有没有一种方法可以直接将数据传递给UiPath,而不是先保存再读取。

实际上,我在这上面花了很多时间,但最终想出了如何将 pandas DataFrame 传递给 UiPath 并使其在数据表中可用。我在下面解释了我是如何做到的:

  1. Python 脚本:
    我让我在 UiPath 'Invoke Paython Method' activity return 中调用的 python 函数将 pandas 数据帧作为 JSON 字符串,即

    return df.to_json(orient='records')

  2. 获取Python对象:
    将 JSON 字符串保存在 string

  3. 类型的变量中
  4. 反序列化JSON:
    选择 'System.Data.DataTable' 作为 TypeArgument 并将结果存储在 dataTable

  5. 类型的变量中

现在来自 pandas dataFrame 的数据在 Uipath 的 .Net dataTable 中可用。