Я пытаюсь извлечь представление в CSS из Tableau с помощью API Python.
Я хотел бы отфильтровать результат, принимая во внимание только несколько месяцев.
Сначала я импортирую пакеты:
from tableau_api_lib import TableauServerConnection
from tableau_api_lib.utils import querying
import tableauserverclient as TSC
import openpyxl
Я подключаюсь к серверу Tableau:
tableau_auth = TSC.PersonalAccessTokenAuth(, )
server = TSC.Server('https://', use_server_version=True)
server.auth.sign_in(tableau_auth)
Я получаю книгу:
for wb in TSC.Pager(server.workbooks):
if wb.name == '':
good_wb_id = wb.id
good_wb = server.workbooks.get_by_id(good_wb_id)
Затем я создаю свой вариант запроса. В представлении у меня есть список месяцев, и я хотел бы сохранить только некоторые из них (название месяца на испанском языке):
csv_req_option = TSC.CSVRequestOptions()
csv_req_option.vf("Month of Invoice Date", 'enero')
Наконец, я получаю представления в книге и создаю из них фреймы данных для их обработки:
views_to_keep = ['Platinium','Titanium', 'Gold', 'SENA']
desired_views = [view for view in good_wb.views if view.name.split()[0] in views_to_keep]
dfs = {}
for view in desired_views:
server.views.populate_csv(view, req_options=csv_req_option)
with open('../csv_tableau/%s.csv'%view.name, 'wb') as f:
# Perform byte join on the CSV data
f.write(b''.join(view.csv))
f.close()
df = pd.read_csv('../csv_tableau/%s.csv'%view.name)
dfs[view.name] = df
os.remove('../csv_tableau/%s.csv'%view.name)
Фильтр не применяется. В выдержке учтены все месяцы.
Я пытался следовать этому руководству https://medium.com/snake-charmer-python ... 8483abac86, но мне нужно использовать токен для входа в Tableau, поэтому мне придется использовать эти библиотеки:
from tableau_api_lib import TableauServerConnection
from tableau_api_lib.utils import querying
import tableauserverclient as TSC