Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在返回上一次迭代的循环中生成字典_Python_Python 2.7_Dictionary_Sequence_Python 3.6 - Fatal编程技术网

Python 在返回上一次迭代的循环中生成字典

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、属

我正在循环使用以下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、属性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'}}