我有一个python代码,可将数据导出到csv中,然后将其加载到Tableau中。我不想将csv加载到tableau中。
有没有一种方法可以只获取python脚本的return
值并将其直接放入tableau中?
问题类似于Export data from Python into Tableau using JSON?,但是他们询问Json格式,答案是使用csv。如果可能,我想跳过csv步骤。返回的数据将采用表格格式。
答案 0 :(得分:3)
请考虑使用TabPy。它返回由脚本创建的值作为工作簿中的计算字段。
否则,Tableau纯粹充当数据源之上的一层。不幸的是,没有将数据直接加载到其中的事情。
我通常处理此类工作的方式是让Python直接将数据加载到某种数据存储中。然后,可以使用Tableau工作簿的现有数据连接查看所有新信息(或覆盖的信息)。
执行此操作(而不必使用正式数据库)的一种简单方法是将CSV一致地加载到具有相同名称的相同位置。然后,在使用预先存在的连接打开Tableau之后,只需单击“刷新”即可。
我了解您的目标是让Tableau直接从Python填充数据,很抱歉,这不是您可能想要的答案,但是需要完成一些后端工作。如果正确完成,对任何用户的最终效果似乎都可以直接从Python渲染。
答案 1 :(得分:1)
Tableau Desktop“连接”屏幕中的现有选项之一是“ Web数据连接器”,它可以连接到任何类型的Web服务器并通过a well-documented protocol获取数据。我怀疑其中会包含a web server running on localhost written in Python。
如果您想走这条路,则需要更改现有的Python脚本以将其转换为通过Web数据连接传输脚本输出的Web服务器,或者(最好)制作一些非常通用的Python代码,可以用这种方式包装任意类型的任意脚本,将其输出显示为Web数据连接。
您当然必须使该Python脚本保持运行状态,以侦听来自Tableau的连接。
答案 2 :(得分:0)
确保当前的Tableau提取是“ Tableau数据源”,然后使用“ Tableau数据提取命令行实用程序”将数据推送到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"