python - TSC Payload 格式错误或不完整
问题描述
我正在使用 TableauServerClient 更新 Tableau Server 上报表的所有者。这是我的简单代码:
Try:
single_workbook = server.workbooks.get_by_id(workbook_id) #default ownerid of fsg_tableaureporting
single_workbook.owner_id = ownerid
if (server.workbooks.update(single_workbook)):
print('Workbook owner has been updated successfully')
else:
print('Workbook owner could not be updated. Please try again. Exiting..')
except Exception as e:
print('Exceptions occured while changing the owner.')
print(e)
我在语句 server.workbooks.update(single_workbook) 处得到异常。有人有什么建议吗?
Python:3.7.3
TSC:0.8.1
Tableau 服务器:2019.1.3 (20191.19.0417.1429) 64 位 Windows
解决方案
我刚刚遇到了同样的问题。查看日志(对于 Windows,C:\Tableau Server\data\tabsvc\logs\vizportal\vizportal-0.log),我看到了错误:
Caused by: com.sun.istack.internal.SAXParseException2; lineNumber: 1; columnNumber: 238; unexpected element (uri:"", local:"dataAccelerationConfig"). Expected elements are <{}owner>,<{}site>,<{}project>,<{}connections>,<{}connectionCredentials>,<{}views>,<{}tags>
该错误在此处生成 XML 时特别发生: https ://github.com/tableau/server-client-python/blob/188be71e0fbe9d87ac36628af21d2f63af32d020/tableauserverclient/server/endpoint/workbooks_endpoint.py#L103
在检查该请求中发生的情况后,我看到它在 xml 中为 data_acceleration_config 添加了一个部分,我认为这是从最近版本开始的新功能,可能是 2019.4: https ://github.com/tableau/server-client-python/ blob/188be71e0fbe9d87ac36628af21d2f63af32d020/tableauserverclient/server/request_factory.py#L485
不幸的是,API 还没有正确处理这个问题!我正在尝试调整我的代码以不生成该 xml 元素;如果我找到解决方案,将再次更新。
推荐阅读
- python - 有没有办法动态创建跟踪,例如堆叠条形图?
- php - Stripe 为费用创建发票/发票
- string - 如何从嵌套列表中删除一定长度的字符串?
- reactjs - 将我的 ReactJS Web 客户端直接连接到 DialogFlow
- django - Django Angular 403 Django 不接受 CSRF-cookie:“CSRF 令牌丢失或不正确。”
- python - django 在模型字段访问之前运行代码?(代理模型字段)
- javascript - 你如何更改谷歌 cse 中的默认细化标签?
- sql-server - T-SQL 为 MIN 和 MAX 返回不同的行值
- python - 不理解这种递归斐波那契实现
- mysql - Laravel MySQL:为电子商务设计多(三)级类别结构