You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Zapier运行Python代码报错:解析字典失败及类型转换问题

解决Zapier中输入字符串转字典列表及代码错误问题

问题分析

  • 你碰到的TypeError: string indices must be integers, not 'str'错误,核心原因是Zapier把countries参数解析成了字符串,而非预期的字典列表,导致无法用字符串键(比如country["Country_Num"])进行索引操作。
  • 原代码还有个隐性错误:遍历逻辑里用的键名是Country_Nums和Country_Names,但原始数据的实际键是Country_Num和Country_Name(多了末尾的s),就算转成字典列表也会报键不存在的错误。

解决方案步骤

1. 字符串转字典列表

使用Python内置的json模块,将Zapier传入的字符串解析成可操作的字典列表,需要先导入json模块。

2. 修正键名拼写

把遍历代码里的键名改成和原始数据匹配的正确名称。

修正后的完整代码

import json

# 将输入的字符串解析为字典列表
countries_data = json.loads(input_data['countries'])

# 初始化存储国家编号和名称的列表
country_nums = []
country_names = []

# 遍历处理每个国家数据
for country in countries_data:
    country_nums.append(country["Country_Num"])
    country_names.append(country["Country_Name"])

# 组装输出结果
output = {'Country_Nums': country_nums, 'Country_Names': country_names}

return output

特殊情况处理

如果Zapier传入的字符串用了单引号(JSON规范要求双引号),可以先替换单引号再解析:

import json

# 修正单引号为双引号,适配JSON格式要求
fixed_countries_str = input_data['countries'].replace("'", '"')
countries_data = json.loads(fixed_countries_str)

# 后续遍历和输出代码同上

内容的提问来源于stack exchange,提问作者Garlon Yau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:52:36