将 Python 中的数据直接导出到 Tableau

Export data from Python to Tableau directly

我有一个 python 代码可以将数据导出到 csv,然后将该 csv 加载到 Tableau 中。我不想将 csv 加载到 tableau 中。

有没有一种方法可以将我的 python 脚本的 return 值直接放入画面中?

问题类似于,但他们询问Json格式,答案是使用csv。如果可能,我想跳过 csv 步骤。我返回的数据将采用表格格式。

确保您当前的 Tableau 数据提取是 "Tableau Data Source",然后使用 "Tableau Data Extract Command-Line Utility" 将数据推送到 Tableau。您使用 os.system 或子进程来调用 tableau 可执行文件。一个警告是这个东西只适用于 Windows.

https://onlinehelp.tableau.com/current/pro/desktop/en-us/extracting_TDE.htm

从 Tableau 站点加载 csv 文件示例:

C:\Program Files\Tableau\Tableau 2019.1\bin>tableau addfiletoextract --server https://our_server_name --username OurServerSignIn --password "OurServerPwd" --project "New Animations" --datasource "CurrentYrOverYrStats" --file "C:\Users\user1\Documents\DataUploadFiles\AprMay.csv"

考虑使用 TabPy。它 returns 由脚本创建的值作为工作簿中的计算字段。

否则,Tableau 纯粹作为数据源之上的一层运行。不幸的是,没有直接将数据加载到其中这样的事情。

我通常处理此类工作的方式是 Python 将数据直接加载到某种数据存储中。然后可以使用 Tableau 工作簿的现有数据连接查看所有新信息或覆盖的信息。

无需使用正式数据库即可执行此操作的一种简单方法是始终将 CSV 以相同名称加载到相同位置。然后,一旦使用预先存在的连接打开 Tableau,只需单击 'refresh.'

我知道您的目标是让 Tableau 直接从 Python 填充您的数据,很抱歉这不是您可能想要的答案,但需要进行一些后端工作完毕。不过,如果操作得当,最终效果对任何用户来说似乎都是直接从 Python 渲染出来的。

Tableau Desktop "Connect" 屏幕中的现有选项之一是 "Web Data Connector,",它可以连接到任何类型的 Web 服务器并通过 a well-documented protocol. I suspect this would include a web server running on localhost written in Python 获取数据。

如果您想走这条路,则需要更改现有的 Python 脚本以将其转变为通过网络数据连接传输脚本输出的网络服务器,或者(最好)制作一些非常通用的 Python 代码,可以以这种方式包装任何类型的任意脚本,将其输出公开为 Web 数据连接。

当然,您必须离开 Python 脚本 运行,侦听来自 Tableau 的连接。