【问题标题】:Declaring a variable via a Zapier input in Python在 Python 中通过 Zapier 输入声明变量
【发布时间】:2016-06-16 06:55:45
【问题描述】:

我正在尝试将输入变量简单声明为整数,但收到错误消息:

讨价还价。我们在创建运行 python 时遇到了错误。 :-( 错误: 您的代码有错误! Traceback(最近一次调用最后一次):文件“/tmp/tmpXq4aAP/usercode.py”,第 7 行,in the_function num = int(input['managers']) KeyError: 'num'

以下是我正在使用的代码:

num = int(input['num'])

if num >= 100 :
  big_num = true
else:
  big_num = false

return {'big_num': big_num}

【问题讨论】:

    标签: python zapier


    【解决方案1】:

    你的错误就在这里:

    num = int(input['num'])
    

    把方括号改成圆括号:

    num = int(input('num'))
    

    如果您使用的是 Python 2,则应使用 raw_input

    num = int(raw_input('num'))
    

    【讨论】:

    • 新错误:您的代码有错误! Traceback(最近一次调用最后一次):文件“/tmp/tmpMfNcV0/usercode.py”,第 7 行,in the_function num = int(input('num')) TypeError: 'dict' object is not callable
    • 你使用的是什么版本的 Python,你输入的究竟是什么
    • 根据 Zapier 的说法,环境是 vanilla Python 2.7.10。它基本上是通过源应用程序传输到另一个应用程序的数据的代码转换。在这里查看他们的页面 - zapier.com/help/code-python
    • @csakon 如果您使用的是 Python 2,您应该使用 raw_input。我更新了我的答案。
    • @SamKamensky 感谢您的提醒。我很快将不得不重新审视这个答案。覆盖 Python 内置函数是一个非常糟糕的主意!我真的希望他们改变(或已经改变)这一点。
    【解决方案2】:

    在 Zapier 中,代码:

    input['varname']

    指的是在“Zapier 的代码”Action 中传递的变量。

    您收到的错误听起来像是您没有在代码之前定义 num 变量。

    另外,TrueFalse 需要大写。

    否则,请参阅下文,此设置有效...

    num = int(input['num'])
    
    if num >= 100 :
      big_num = True
    else:
      big_num = False
    
    return {'big_num': big_num}
    

    【讨论】:

      【解决方案3】:

      其中许多答案都引用了内置的 input() - 我们在 Zapier 的代码中覆盖了它(因为在自​​动化脚本上进行用户输入实际上是零意义的)。取而代之的是上面某些字段定义的字典。

      对于不熟悉 Zapier 上下文的人来说肯定会感到困惑 - 我们将研究重命名它并仅取消 input 构建。

      【讨论】:

        【解决方案4】:

        输入是内核方法,不能下标,有语法错误把代码改成这样。

        num = int(input('num'))
        

        【讨论】:

        • 新错误:您的代码有错误! Traceback(最近一次调用最后一次):文件“/tmp/tmpMfNcV0/usercode.py”,第 7 行,in the_function num = int(input('num')) TypeError: 'dict' object is not callable
        • 你用的是哪个版本的python?
        【解决方案5】:

        在 Zapier 中,将输入数据(每个输入到代码步骤都是一个字符串)转换为整数的正确方法如下:

        num = int(input.get('num'))
        

        num = int(input['num'])
        

        如果数字带有小数,请在转换为整数之前从字符串中删除不需要的字符。对于像 80.0 这样的数字,这看起来像:

        num = int(input['num'][:-2])
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-24
          • 1970-01-01
          • 2011-10-20
          • 2012-08-27
          • 2012-06-15
          • 2016-06-18
          • 2014-02-07
          相关资源
          最近更新 更多