반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- django
- string
- GIT
- PANDAS
- list
- SQL
- math
- dataframe
- array
- gas
- PostgreSQL
- numpy
- Python
- Apache
- Google Excel
- c#
- google apps script
- Java
- Tkinter
- Github
- Excel
- Mac
- hive
- Google Spreadsheet
- Kotlin
- 파이썬
- matplotlib
- Redshift
- PySpark
Archives
- Today
- Total
달나라 노트
Python tableauserverclient : server.version (tableau server version setting, tableau server 버전 설정) 본문
Python/Python tableauserverclient
Python tableauserverclient : server.version (tableau server version setting, tableau server 버전 설정)
CosmosProject 2022. 5. 26. 19:22728x90
반응형
tableauserverclient를 사용하다보면 간혹 코드는 정상인데 제대로 작동되지 않을 때가 있습니다.
RequestOptions를 이용해서 특정 Project class를 얻어오는 코드를 작성했는데 에러가 발생합니다.
import tableauserverclient as TSC
id = 'user_1'
pw = 'pw_1'
url_tableau = 'https://tableau-server.test.com'
server = TSC.Server(url_tableau)
tableau_auth = TSC.TableauAuth(id, pw)
server.auth.sign_in(tableau_auth)
req_option = TSC.RequestOptions()
req_option.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name,
TSC.RequestOptions.Operator.Equals,
'Project 23'))
list_project_obj, pagination_item = server.projects.get(req_option)
project_obj = list_project_obj[0]
print('Project id =', project_obj.id)
print('Project name =', project_obj.name)
server.auth.sign_out()
-- Result
Bad Request. The filter query contains a key which is not recognized for this api version.
Bad Request. The filter query contains a key which is not recognized for this api version.
에러메세지는 위와 같은데 API version이 뭔가 안맞는 것 같습니다.
이건 굉장히 간단하게 해결해줄 수 있는데 TSC server의 version을 바꿔주는겁니다.
import tableauserverclient as TSC
id = 'user_1'
pw = 'pw_1'
url_tableau = 'https://tableau-server.test.com'
server = TSC.Server(url_tableau)
tableau_auth = TSC.TableauAuth(id, pw)
print(server.version)
server.version = '2.8'
print(server.versoin)
server.auth.sign_in(tableau_auth)
req_option = TSC.RequestOptions()
req_option.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name,
TSC.RequestOptions.Operator.Equals,
'Project 23'))
list_project_obj, pagination_item = server.projects.get(req_option)
project_obj = list_project_obj[0]
print('Project id =', project_obj.id)
print('Project name =', project_obj.name)
server.auth.sign_out()
-- Result
2.3
2.8
Project id = 11pp11pp11-1111-1111-1111-1111pppp0023
Project name = Project 23
그러면 결과가 제대로 나옵니다.
바뀐 부분은 딱 하나입니다.
server.version = '2.8'
위 부분을 보면 sign_in method를 실행하기 전에 server.version을 2.8로 설정하는 코드가 있습니다.
이렇게 server의 version을 원하는 version으로 설정할 수 있습니다.
print(server.version)
server.version = '2.8'
print(server.versoin)
version 설정 전/후의 version값을 출력해보면 설정 전에는 2.3, 설정 후에는 2.8로 출력되는걸 볼 수 있습니다.
tableauserverclient를 사용하다가 API version 관련 에러가 발생한다면 이렇게 version을 변경하는 것도 에러 해결에 도움이 되겠네요.
728x90
반응형
'Python > Python tableauserverclient' 카테고리의 다른 글
Python tableauserverclient : populate (2) | 2022.05.25 |
---|---|
Python tableauserverclient : RequestOptions (Filtering) (0) | 2022.05.25 |
Python tableauserverclient : get (project class 얻기, workbook class 얻기, view class 얻기) (0) | 2022.05.25 |
Python tableauserverclient : Refresh workbook (0) | 2020.12.21 |
Python tableauserverclient : Filtering (0) | 2020.12.21 |
Comments