我正在使用Tableau Server Client以编程方式发布和更改其所有者。我正在使用以下代码:
request_options = TSC.RequestOptions(pagesize=1000)
all_workbooks = list(TSC.Pager(server.workbooks, request_options))
for workbook in all_workbooks:
if workbook.name == 'report-test' and workbook.project_name=='folder-Test':
workbook.owner = 'new_owner'
print('Trying to update the owner')
workbook = server.workbooks.update(workbook)
print('Owner changed successfully')`
我遇到以下错误:
Traceback (most recent call last):
File "tsc_refresh_schedule.py", line 124, in
main()
File "tsc_refresh_schedule.py", line 65, in main
run(args)
File "tsc_refresh_schedule.py", line 100, in run
workbook = server.workbooks.update(workbook)
File "/usr/local/lib/python3.7/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 116, in wrapper
return func(self, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/tableauserverclient/server/endpoint/workbooks_endpoint.py", line 84, in update
server_response = self.put_request(url, update_req)
File "/usr/local/lib/python3.7/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 85, in put_request
content_type=content_type)
File "/usr/local/lib/python3.7/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 54, in _make_request
self._check_status(server_response)
File "/usr/local/lib/python3.7/site-packages/tableauserverclient/server/endpoint/endpoint.py", line 68, in _check_status
raise ServerResponseError.from_response(server_response.content, self.parent_srv.namespace)
tableauserverclient.server.endpoint.exceptions.ServerResponseError:
400000: Bad Request
Payload is either malformed XML/JSON or incomplete
有人可以帮我吗? TIA
答案 0 :(得分:1)
工作簿上没有属性owner
。您需要设置owner_id
,即用户的id
。请参阅帮助文档here。
另一个掩盖了许多潜在挑战的优秀图书馆是Tableau Tools。我都使用过,并且发现此库更易于使用。