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

向函数传入字典参数时报TypeError: string indices must be integers如何解决

问题原因与解决方案

问题根源

你定义的data字典中,printing_settings、transformations、annotations三个键对应的值都是JSON格式字符串,而非Python字典对象。你直接对字符串使用["layer_height"]这种字典键索引方式,就会触发TypeError: string indices must be integers报错,和你后续尝试转换值类型的操作无关,报错在索引取值阶段就已经触发。

修复步骤

  • 引入Python内置的json模块,用于JSON字符串和Python对象的互相转换
  • 在取嵌套字段前,先把对应JSON字符串反序列化为Python字典

代码示例

import json

def myfunction(params_dict):
    # 反序列化printing_settings字符串为字典
    printing_settings = json.loads(params_dict["printing_settings"])
    # 正常读取嵌套字段
    layer_height = printing_settings["layer_height"]
    # 其他嵌套字段按需反序列化即可
    transformations = json.loads(params_dict["transformations"])
    translate_z = transformations["translate"]["z"]
    # 后续业务逻辑

如果后续需要把修改后的嵌套字段重新拼接回原字典用于接口请求,使用json.dumps(修改后的字典)方法转回字符串格式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:36:03