Скрипт TabPy на Python «Незавершенная дата»

#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. Извините, что на этот вопрос не было простого ответа. Однако, как только вы исправите формат и внесете исправления, он станет чрезвычайно мощным. Удачи!