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

Python读取JSON文件实例化类时报**解包需mapping而非list错误

错误原因

  • object_config[str(request.object)]["singles"] 是列表类型:对应你JSON结构里的singles字段是包含2个字典元素的数组,JSON解析后对应Python的list对象
  • ** 解包操作符仅支持作用于字典(映射类型),作用是将字典的键值对拆解为关键字参数传入类构造方法/函数,传入列表会直接触发类型不匹配错误
  • 你的MyClass一次只能实例化单个对象,对应singles列表里的单个字典元素,无法直接接收整个列表作为构造参数

解决方法

根据需求选择对应实现:

场景1:批量实例化singles下的所有元素,得到MyClass对象列表

将原代码替换为列表推导式遍历列表逐个实例化:

object_details_list = [MyClass(**item) for item in object_config[str(request.object)]["singles"]]

运行后object_details_list值为 [<MyClass(name=Hello)>, <MyClass(name=World)>]

场景2:仅实例化singles下的某一个元素

需要指定对应下标取列表内的单个字典元素再解包,例如取第一个元素:

object_details = MyClass(**object_config[str(request.object)]["singles"][0])

运行后object_details为对应name=Hello的MyClass实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:15:01