Python 在返回上一次迭代的循环中生成字典
我正在循环使用以下JSON:Python 在返回上一次迭代的循环中生成字典,python,python-2.7,dictionary,sequence,python-3.6,Python,Python 2.7,Dictionary,Sequence,Python 3.6,我正在循环使用以下JSON: "item 1": { "property 1": "value 1", "property 2": "value 2", "property 3": "value 3" }, "item 2": { "property 1": "value 1", "property 2": "value 2", "property 3": "value 3" } 我想为每个项目(不包括属性3)制作一个包含前两个键(属性1、属
"item 1": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
},
"item 2": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
}
我想为每个项目(不包括属性3)制作一个包含前两个键(属性1、属性2)值的字典。下面的代码实现了所需的结果,但只存储了最新的序列:
for i in JSON:
value 1 = i["value 1"]
value 2 = i["value 2"]
...
JSON = json.dumps({'property 1':value 1,'property 2':value 2...})
return json.loads(JSON)
>> "item 2": {
"property 1": "value 1",
"property 2": "value 2" ...
# returns item 2, but I'd like item 1 also
如何在不覆盖其他项的情况下存储每个项的输出?使用简单的迭代 例: 输出:
使用简单的迭代 例: 输出:
下面是使用items方法和dict理解的另一个选项:
data = {"item 1": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
},
"item 2": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
}
}
new_data = {}
for index, value in data.items():
new_data.update({index: {k:v for k, v in value.items() if k != "property 3"}})
print(new_data)
输出:
下面是使用items方法和dict理解的另一个选项:
data = {"item 1": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
},
"item 2": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
}
}
new_data = {}
for index, value in data.items():
new_data.update({index: {k:v for k, v in value.items() if k != "property 3"}})
print(new_data)
输出:
data = {"item 1": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
},
"item 2": {
"property 1": "value 1",
"property 2": "value 2",
"property 3": "value 3"
}
}
new_data = {}
for index, value in data.items():
new_data.update({index: {k:v for k, v in value.items() if k != "property 3"}})
print(new_data)
{'item 1': {'property 1': 'value 1', 'property 2': 'value 2'},
'item 2': {'property 1': 'value 1', 'property 2': 'value 2'}}