#python #tableau-api #tabpy
#python #tableau-api #tabpy
Вопрос:
Я пытаюсь использовать вычисляемое поле Tableau для использования моего скрипта на python. Мой скрипт на python запрашивает базу данных. В настоящее время я использую его в Spyder.
В настоящее время я получаю Unterminated Date
ошибку.
со следующими строками, подчеркнутыми красным,
#Remove the list comma
bookList = bookList[:-1]
sql = sql.format ("'" startDate "'", "'" endDate "'", "'" nodeNames "'")
print (sql)
df_Cs01 = pd.read_sql(sql,con)
con.close()
return df_Cs01
)
сообщение об ошибке:
Мой скрипт на python:
import pandas as pd
import pyodbc, os
import datetime
def GetData (startDate, endDate, nodeNames, server='server'):
con = pyodbc.connect(r'DSN=' server,autocommit=True)
#query removed for simplicity.
sql = """ e (R.asOfDate >= {0} and R.asOfDate <= {1})
and R.node = {2} """
bookList = ""
print (nodeNames)
#loop through the nodeNames
for nodeName in nodeNames:
bookList = bookList "'" nodeName "',"
#Remove the list comma
bookList = bookList[:-1]
sql = sql.format ("'" startDate "'", "'" endDate "'", "'" nodeNames "'")
print (sql)
df_Cs01 = pd.read_sql(sql,con)
con.close()
return df_Cs01
полный экран:
Ожидаемые результаты, которые я хотел бы отобразить в tableau:
------------ ------- -----------
| Date | Node | sum |
------------ ------- -----------
| 04/02/2019 | Stack | -2.90E 06 |
| 05/02/2019 | Stack | -2.90E 06 |
------------ ------- -----------
Комментарии:
1. Не могли бы вы, пожалуйста, предоставить полное окно вычисляемого поля Tableau?
Ответ №1:
Ошибка, которую вы видите, вызвана знаком # комментария python в вычисляемом поле Tableau.
Tableau рассматривает знак # как метод явного объявления даты. Вот пример того, что могло бы вызвать ошибку «Неустановленная дата», которую вы видите (обратите внимание на отсутствующий знак # после даты):
Если вы удалите комментарий в вычисляемом поле Tableau, он должен скомпилироваться правильно.
Комментарии:
1. Спасибо. Идеальное время. Я только что отредактировал свой ответ, чтобы он соответствовал тому, что я вижу в вашем вычисляемом поле.
2. Приятно! Хорошо, эта ошибка устранена, но теперь я получил другую ошибку, lol.
expected closing parenthesis or comma while parsing argument list for script int
в моей строкеimport pandas as pd
. Есть идеи?3. Действительно, ваше вычисляемое поле должно быть в таком формате: SCRIPT_INT(«_arg1 _arg2», SUM([Число]), SUM([Другое число])) — Поэтому вам понадобятся кавычки вокруг вашего скрипта, замените поля, переданные в скрипт, аргументами, запятой, затем списком аргументов из Tableau. Посмотрите здесь, как форматировать / использовать: github.com/tableau/TabPy/blob/master/docs /…
4. ах, как сложно:(
5. Извините, что на этот вопрос не было простого ответа. Однако, как только вы исправите формат и внесете исправления, он станет чрезвычайно мощным. Удачи!