Я пытаюсь использовать вычисляемое поле 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
)
сообщение об ошибке:
Мой скрипт на питоне:
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
полноэкранный:
Ожидаемые результаты, которые я хотел бы отобразить в таблице:
+------------+-------+-----------+
| Date | Node | sum |
+------------+-------+-----------+
| 04/02/2019 | Stack | -2.90E+06 |
| 05/02/2019 | Stack | -2.90E+06 |
+------------+-------+-----------+






Ошибка, которую вы видите, вызвана знаком комментария python # в поле Tableau Calculated.
Tableau рассматривает знак # как способ явного объявления даты. Вот пример того, что может вызвать ошибку «Неопределенная дата», которую вы видите (обратите внимание на отсутствующий знак # после даты):
Если вы удалите комментарий в поле Tableau Calculated, он должен правильно скомпилироваться.
Спасибо. Идеальное время. Я только что отредактировал свой ответ, чтобы он соответствовал тому, что я вижу в вашем вычисляемом поле.
Хороший! Хорошо, эта ошибка решена, но теперь у меня другая ошибка, лол. expected closing parenthesis or comma while parsing argument list for script int на моей линии import pandas as pd . Любая идея здесь?
Действительно, ваше вычисляемое поле должно быть в следующем формате: SCRIPT_INT("_arg1 + _arg2", SUM([Число]), SUM([Другое число])) - Таким образом, вам понадобятся кавычки вокруг вашего скрипта, замените переданные поля в скрипт с аргументами, запятая, затем список аргументов из Tableau. Посмотрите здесь для форматирования/использования: github.com/tableau/TabPy/blob/master/docs/…
ааа как сложно :(
Извините, что у этого не было простого ответа. Тем не менее, как только вы получите формат и внесете исправления, это станет чрезвычайно мощным. Удачи!
последний вопрос, Даниэль, будет ли этот скрипт возвращать данные в формате данных/таблице в виде таблицы?
Из предыдущей ссылки: «Tableau ожидает, что СЦЕНАРИЙ вернет один столбец, который имеет либо одну строку, либо такое же количество строк, которое было передано в TabPy. В приведенном выше примере отправляет 18 строк данных в TabPy и получает 18 строк обратно». Ответ: зависит. :)
Не могли бы вы поделиться полным окном Tableau Calculated Field?