【问题标题】:Im trying to write a python script for my tableau worksheet. It is giving me an indentation error我正在尝试为我的表格工作表编写一个 python 脚本。它给了我一个缩进错误
【发布时间】:2017-06-21 03:37:41
【问题描述】:
SCRIPT_BOOL("newList=[]
for x in _arg1:
newList.append(x > 0)
return newList
",SUM([Profit]))

错误处理脚本 IndentationError : 需要一个缩进块(第 4 行)

【问题讨论】:

  • 请阅读 Python 入门教程。它会告诉你缩进对于 Python 来说是至关重要的。您输入问题的代码显然没有缩进,这使其无效。
  • 另外需要注意的是,您发布的不是 Python,而是嵌入在...中的 Python 源代码。我怀疑真正的问题是您不了解 Python(和 Python 语法要求)与嵌入机制之间的交互。但是,如果您不告诉我们您在这里做什么,我们将无法帮助您。
  • OK ...所以这显然是一款名为 Tableau 的产品。所以你应该适当地>>标记TabPy example 表明嵌入式 Python 需要我正确缩进!)

标签: python tableau-api tabpy


【解决方案1】:

我不完全确定您在问什么,但请尝试像这样编写脚本:

newList=[]
for x in _arg1:
    newList.append(x > 0)
return newList

这有适当的缩进。

【讨论】:

    【解决方案2】:

    通过快速阅读TabPy GitHub page,以下代码应该可以工作,但未经测试,因此按原样提供:

    SCRIPT_BOOL("newList=[]
    for x in _arg1:
        newList.append(x > 0)
    return newList",SUM([Profit]))
    

    【讨论】:

      【解决方案3】:

      如果你想要一个多行字符串,你必须使用语法"""I am a multiline string""" 而不是"I am not a multiline string"

      【讨论】:

        【解决方案4】:

        改为这样做:

        SCRIPT_BOOL("return [i > 0 for i in _arg1]",SUM([Profit]))
        

        它比 for 循环更短更容易调试。但是,如果您想要 for 循环,则需要在第四行缩进,以便将列表附加到循环中。

        SCRIPT_BOOL(
        "
        newList=[]
        for x in _arg1:
            newList.append(x > 0)
        return newList
        ",SUM([Profit]))
        

        BTW:Python 社区对初学者非常不友好!在您对问题投反对票之前,请认为您也从某个地方开始! ;(我不是唯一一个这样说的人 (http://pythonforengineers.com/this-is-what-python-beginners-have-to-deal-with/)

        【讨论】:

        • (1) 请在显示代码时正确格式化您的答案。 (2) 你的 Python 有语法错误。您需要使其成为多行或使用分号。 (3) 你对“Python 社区”的评论是无用的噪音。
        • 其实,不!它与 Tableau Python 集成 TabPy 完美配合。否决票只是表明Python社区对初学者的评论是现场的。为你感到羞耻,选民们。
        猜你喜欢
        • 1970-01-01
        • 2021-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-28
        • 2019-03-09
        • 1970-01-01
        • 2020-02-27
        相关资源
        最近更新 更多