【发布时间】:2016-08-31 21:35:19
【问题描述】:
我从一个从 api 收到的 dict 开始
start_dict = {
"a": 795,
"b": 1337,
"c": [
{
"d1": 2,
"d2": [
{
"e1": 4
}
]
}
]
}
我需要从该字典创建一个单独的字典。每个键和值都由它们的键和值分隔到自己的字典中。同时保持嵌套的字典完整。
values =
{
"fields": [
{
"element_name": "a",
"value": 795
},
{
"element_name": "b",
"value": 1337
},
{
"element_name": "c",
"value": [
{
"element_name": "d1",
"value": 2
},
{
"element_name": "d2",
"value" : [
{
"element_name": "e1",
"value": 4
}
]
]
}
]
}
实际的字典要大一些,但原来的嵌套字典不超过两个,但嵌套的字典很多。这是 api 接受新数据的唯一方式,所以我有点卡住了,直到我弄明白为止。非常感谢任何帮助,因为我对 Python 很陌生(3 周)哈哈,所以如果这很简单,请不要太苛刻。
【问题讨论】:
-
你有没有尝试自己写一些东西?在问题中添加一些代码...
-
您的
c值有点神秘。您有一个列表,该列表中有一个字典,但结果输出是一个列表,其中包含从该字典转换为单独字典的键值对。如果c列表中有多个元素会发生什么?如果包含更多列表或不是字典的对象怎么办?这同样适用于d2。 -
我下面的解决方案会产生一个 nested 列表,因为单个字典被转换为键值字典列表。如果有多个字典,这意味着每个字典都将成为主
c列表中的一个单独列表。任何其他对象类型也可以通过这种方式正确处理。
标签: python python-2.7 dictionary