You need to enable JavaScript to run this app. Python实现字符串转字典时报'dict' object is not callable错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python实现字符串转字典时报'dict' object is not callable错误如何解决

报错核心原因

出现'dict' object is not callable的本质是Python内置的dict类型构造器被自定义变量覆盖,失去了可调用的类属性。
正常运行逻辑里,dict是Python的内置类,支持接收键值对格式的可迭代序列,直接生成字典对象。如果在当前脚本的任意位置,存在类似dict = {"name": "test"}的赋值语句,原本指向内置dict类的全局名称,就会被替换成普通的字典实例。后续执行d = dict(l)时,相当于对一个普通字典对象执行调用操作,自然触发报错。
另外你的代码里存在同类的命名隐患:str = 'Vijay=23,...'的写法直接覆盖了Python内置的字符串类型str,虽然本次没有触发报错,但后续如果有需要用到str类型转换的逻辑,会出现同类问题,建议一并调整。

修复操作
  • 排查全局作用域下所有和内置名dict、str重名的自定义变量,将这些变量重命名为不冲突的名称,比如result_dict、kv_content等,释放被占用的内置名称。
  • 如果是在交互式调试环境(Python Shell、Jupyter Notebook)中出现的报错,大概率是之前调试时临时赋值覆盖了dict名称,重启解释器/内核,不执行覆盖内置名的赋值语句,即可快速恢复正常。
  • 确认调用dict(l)时没有多余的语法错误,比如误加括号写成dict() = {}这类反向赋值、或者对已经赋值的dict变量重复加括号执行调用。
修正后可正常运行的示例代码
l = []
kv_content = 'Vijay=23,Ganesh=20,Lakshmi=19,Nikhil=22'
for x in kv_content.split(','):
     y = x.split('=')
     l.append(y)
d = dict(l)
for k in d:
   print('{:1s}---{:1s}'.format(k,d[k]))

代码运行后的输出结果为:

Vijay---23
Ganesh---20
Lakshmi---19
Nikhil---22

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 12:36:04