如何使用Python和Tableau Server Client获取Tableau Server关联工作簿/视图的仪表板
如何获取Tableau Server中与工作簿关联的仪表板
在Tableau Server Client (TSC) 中,仪表板属于工作簿下的一种视图类型,你可以通过遍历工作簿的所有视图,筛选出类型为dashboard的项来获取关联的仪表板。
修改你现有代码的循环部分即可实现需求,完整代码如下:
import tableauserverclient as TSC # Tableau Server details tableau_server_url = 'my url' username = 'my user name' password = 'my password' siteName = 'site name' # Authentication and server connection tableau_auth = TSC.TableauAuth(username, password, site_id=siteName) server = TSC.Server(tableau_server_url) server.add_http_options({'verify': False}) with server.auth.sign_in(tableau_auth): # Get user details user = server.users.get_by_id('my_user_id') user_name = user.name print(user_name) server.users.populate_workbooks(user) for wb in user.workbooks: print(f"\n工作簿: {wb.name}") # 填充当前工作簿的所有视图 server.workbooks.populate_views(wb) # 筛选出类型为dashboard的视图(即仪表板) dashboards = [view for view in wb.views if view.type == 'dashboard'] if dashboards: print("关联的仪表板:") for dashboard in dashboards: print(f"- {dashboard.name}") else: print("无关联仪表板")
关键说明:
- 调用
server.workbooks.populate_views(wb)可获取该工作簿下的所有视图资源 - Tableau的视图类型包括
view(普通视图)、dashboard(仪表板)、story(故事)等,通过判断view.type == 'dashboard'即可筛选出仪表板 - 若需进一步获取仪表板关联的具体视图,可调用
server.views.populate_view_datasource(view)等方法,基础需求下上述代码已足够实现目标
内容的提问来源于stack exchange,提问作者SnowGirl
相关产品推荐
相关产品推荐

