【问题标题】:Python: Append a dictionary as a new object to a dictionary keyPython:将字典作为新对象附加到字典键
【发布时间】:2020-04-06 17:24:33
【问题描述】:

我正在开发一个 Django API 来填充不同部分/类别下的某些数据集。在那里,每个部分/类别都会有多个字典。

要求:

"data": {
    "engineers": {
        {"id": 1, "name": "aaa"},
        {"id": 2, "name": "bbb"},
        {"id": 3, "name": "ccc"},
    },
    "doctors": {
        {"id": 5, "age": "50"},
        {"id": 6, "age": "60"},
        {"id": 7, "age": "70"},
    },
}

在此示例中,我需要将新的工程师对象附加到“工程师”节点,并将新的医生对象附加到“医生”节点。我试过的方法如下。

data = {}
data["engineers"].append({"id": 4, "name": "ddd"})
data["doctors"].append({"id": 8, "age": "45"})

错误:

在处理上述异常期间('set'对象不 subscriptable),发生另一个异常:

我该怎么做?

【问题讨论】:

  • 您正在附加到一个字典对象并且这不起作用,因此工程师必须是一个列表对象而不是字典,第一次使用 [] 而不是 {} 定义它,与医生相同
  • 要求不是有效的Python

标签: python django python-3.x python-2.7


【解决方案1】:

您正在附加到一个 dict 对象并且这不起作用,因此工程师必须是一个列表对象而不是一个 dict,第一次使用 [] 而不是 {} 定义它时,与医生相同。

data = {
'engineers':[],
'doctors':[]
} 
data["engineers"].append({"id": 4, "name": "ddd"})

【讨论】:

    【解决方案2】:

    将要附加到的数据包装在一个数组中。不能追加到字典,但可以追加对象到数组。

    data = {"Engineers":
        [
            {"id": 1, "name": "Bob"}
        ]
    }
    
    data["Engineers"].append({
        "id": 2, "name": "Alice"
    })
    

    这将产生:

    {"Engineers": 
      [
        {"id": 1, "name": "Bob"},
        {"id": 2, "name": "Alice"}
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      • 2021-12-17
      相关资源
      最近更新 更多