“运行Python”模块给出错误:“str”对象没有属性“copy”

Bra*_*van 6 zapier

我制作了一个非常简单的 Python 助手,用于使用任务上的自定义字段更新 Asana 中的任务。它可以在我的本地机器上的终端上运行。

我试图将其添加到 Zapier 'Run Python' 块中,但得到看起来像通用错误'str' 对象没有属性 'copy' 的信息

这是Python代码,我很感激任何关于为什么它不能在Zapier中的“运行Python”模块中运行的建议——这些行中没有str!!?

import requests

headers = {'Authorization':'Bearer 1/xxxxx'}
task_id = input_data['task_id']
data = {"data": {"custom_fields": {"1200278184463303":"#" + input_data['row_number']}}}

response = requests.put('https://app.asana.com/api/1.0/tasks/' + task_id, headers=headers, json=data)

return 'task #' + input_data['row_number'] + 'assigned'
Run Code Online (Sandbox Code Playgroud)

xav*_*did 12

我知道这个问题已经得到解答,但我想添加一些背景信息。Code by Zapier步骤期望dict返回a;你正在返回一个字符串。

Zapier应该在这里抛出一个更明确的错误(类似于“expected” dict,“got str”),但事实并非如此。相反,它调用.copy()输出,这会导致您看到的错误:

>>> {}.copy()
{}

>>> ''.copy()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'copy'

'str' object has no attribute 'copy'
Run Code Online (Sandbox Code Playgroud)

有两个选项可以修复它:

  1. 在预定义的output字典上设置一个键(当前接受的答案)
  2. 手动返回一个字典:return {'field_name': 'task #' + input_data['row_number'] + 'assigned'}

要么在这里工作。