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

枚举JSON文件字典项时触发'list'对象无'items'属性错误求助

问题解决:AttributeError: 'list' object has no attribute 'items'

错误原因

你的JSON文件里,"offer"对应的是一个列表(用[]包裹),里面仅包含一个字典对象。而你的代码直接对这个列表调用items()方法——列表没有这个属性,所以触发了报错。

修正后的代码

如果offer列表里只会有一个字典,直接取出列表中的字典元素即可:

import json
with open("offers.json",'r')as f:
    # 取出列表中的字典对象
    offer_dict = json.load(f)['offer'][0]

    for i, (key, value) in enumerate(offer_dict.items()):
        print(f"{str(i + 1)} {key} {value:02}  $")

如果未来offer列表可能包含多个字典,可以遍历列表里的每个字典:

import json
with open("offers.json",'r')as f:
    offer_list = json.load(f)['offer']

    # 遍历列表中的每一个字典
    for list_idx, offer_dict in enumerate(offer_list, start=1):
        for item_idx, (key, value) in enumerate(offer_dict.items(), start=1):
            print(f"{list_idx}-{item_idx} {key} {value:02}  $")

关键修正点

  • 原代码中offer = json.load(f)['offer']得到的是列表类型,必须先通过索引(如[0])取出里面的字典对象,才能调用items()方法获取键值对。
  • enumerate()可以配合start参数直接设置起始计数,不用再手动i+1(上面第二个示例用到了这个写法)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 02:19:56