使用Tableau REST API从server.workbooks.refresh读取返回

这听起来可能很愚蠢,但是我有一个Python脚本正在尝试使用服务器上的工作簿ID刷新Tableau Extract。我的所有代码工作都很好,我什至可以使用server.workbooks.refresh方法在调用中传递工作簿ID来使提取工作。我将值返回一个称为“结果”的值。问题是我想从结果变量中提取作业ID,而我尝试在“结果”变量中引用ID的所有内容均无效。我不断收到AttributeError'JobItem'对象没有属性错误。

我试图将对象引用为字符串,元组,字典和列表。但是我无法弄清楚这个对象实际上是什么,因此我可以引用其中的数据,也无法在Internet上找到谈论返回内容的任何地方。

results = server.workbooks.refresh(selected_workbook_id)
print(results)
print("\nThe data of workbook {0} is refreshed.".format(results.name))

这是打印语句后的错误:

<Job#fc62052d-e824-4594-8681-64dbb9a8216c RefreshExtract created_at(2019-11-06 22:18:21+00:00) started_at(None) completed_at(None) progress (None) finish_code(-1)>
https://wnuapesstablu01.dstcorp.net/api/3.4/auth
Traceback (most recent call last):
  File "C:\Users\dt24358\Python36\Scripts\Tableau REST API Scripts\Refresh_Single_Extract_v2.py",line 134,in <module>
    main()
  File "C:\Users\dt24358\Python36\Scripts\Tableau REST API Scripts\Refresh_Single_Extract_v2.py",line 131,in main
    print("\nThe data of workbook {0} is refreshed.".format(results.name))
AttributeError: 'JobItem' object has no attribute 'name'
ypl528 回答:使用Tableau REST API从server.workbooks.refresh读取返回

解决此问题。我意识到我需要为JobItem类使用正确的API参考。参见https://tableau.github.io/server-client-python/docs/api-ref#jobs

有效的引用是诸如“ id”,“ type”,“ created_at”,“ started_at”之类的内容。因此对于那些像我这样不理解的人,参考是:

workbook = server.workbooks.get_by_id(selected_workbook_id)

results = server.workbooks.refresh(workbook.id)
print(results)

jobid = results.id

这将返回刷新任务开始的作业ID。然后,您可以编写例程以轮询服务器以查看提取作业何时完成。

希望这对某人有帮助...这让我发疯了。

本文链接:https://www.f2er.com/3148537.html

大家都在问