Tableau 提供了tableauserverclient包,可以通过Python对tableau进行一些基础的操作.

通过Python下载tableau中的数据分析结果(view形式),具体如下:

import tableauserverclient as TSC;
import pandas as pd;

## 登录Tableau Server
tableau_auth =TSC.TableauAuth('USER', 'PASSWORD') #用户名,密码
server = TSC.Server('https://XXXX.com') #tableau服务器地址
server.version = '3.7' 
server.auth.sign_in(tableau_auth)

request_options = TSC.RequestOptions(pagesize=1000)

登录后,server.datasources(数据源)、server.users(用户)、server.project(项目)、server.workbooks(工作簿)、server.views(视图)可以处理对应目标。

with server.auth.sign_in(tableau_auth):
        ##获取所有工作簿
        all_wk_items, pagination_item2 = server.workbooks.get(req_options=(request_options))
        for i in all_wk_items:
            if i.name == '订单汇总':  #想要下载的工作簿名称
                 wk = server.workbooks.get_by_id(i.id)  #得到想要下载的工作簿

工作簿可能有多个视图组成,选择想要下载的视图

for j in wk.views:
    if j.name == '汇总-食品’:                    #输入想要下载的视图
        file = server.views.get_by_id(j.id)  #得到想要下载的视图
        server.views.populate_csv(file)      #将想要下载的视图复制成CSV
        print('View_Name; ', j.name, ' Project_name:  ', i.project_name, 'Updated_time: ', str(j.updated_at)[0:19])

     with open('./view_data.csv', 'wb', encoding='utf-8') as f:
         f.write(b''.join(file.csv))  #写出成csv文档
                   
      break

这样就可以得到view_data.csv文件了。

 

posted on 2022-02-11 22:18  tonorth  阅读(761)  评论(0编辑  收藏  举报