【问题标题】:TypeError with python json data带有python json数据的TypeError
【发布时间】:2017-12-26 17:18:24
【问题描述】:

我一直在尝试从 json 中解析一些数据,但在从 json.load 集中获取数据时遇到了一些困难。

for obj in menus:
    if("parent_id" not in obj):
        rootItem = {"root_id": obj["id"], "child_ids": obj["child_ids"]}
        roots.append(rootItem.copy())
    else:
        for r in roots:
            if(obj["parent_id"] == r["root_id"]):
                r["child_ids"].append(obj["child_ids"])

我在 rootItem 行收到; typeError: 列表索引必须是整数,而不是 str

我不知道为什么,我正在创建一个字典,其中的值是从 obj 中提取的。

任何帮助都很棒!

编辑: 这是我正在访问并尝试创建字典以放回 json 输出的数据示例。

[[
{"child_ids": [3], "data": "House", "id": 1}, 
{"child_ids": [4, 5, 8], "data": "Company", "id": 2}, 
{"child_ids": [7], "parent_id": 1, "data": "Living Room", "id": 3}, 
{"child_ids": [], "parent_id": 2, "data": "Meeting Rooms", "id": 4}
]]

【问题讨论】:

  • 您正在创建字典,但您可能正在访问一个列表:obj。如果您需要适当的帮助,您应该展示您尝试使用的数据。

标签: python json list dictionary


【解决方案1】:

你实际上是在一个列表中迭代一个列表。 您应该执行类似for obj in menus[0]: 的操作来迭代内部列表中的字典(如果您在menus 中只有一个列表,则适用)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 2020-09-26
    • 2018-12-04
    • 2014-11-02
    • 2016-09-03
    • 2011-03-29
    • 1970-01-01
    相关资源
    最近更新 更多