【发布时间】:2021-01-05 17:25:27
【问题描述】:
使用 Python3,我正在尝试将字典列表中的键值对向上移动。
我有一个名为 product 的变量,它具有以下内容:
[
{'color': 'red',
'shape': 'round',
'extra': {'price': 'large',
'onsale': 'yes',
'instock: 'yes'}
},
{'color': 'blue',
'shape': 'square',
'extra': {'price': 'small',
'onsale': 'no',
'instock: 'yes'}
}
]
我想将“instock”的键值对在 extra 上移一级,以与颜色、形状、extra 保持一致 - 所以这个:
[
{'color': 'red',
'shape': 'round',
'extra': {'price': 'large',
'instock: 'yes'},
'onsale': 'yes'
},
{'color': 'blue',
'shape': 'square',
'extra': {'price': 'small',
'onsale': 'no'},
'instock: 'yes'
}
]
我尝试使用在此处找到的以下代码:
result = {}
for i in products:
if i["href"] not in result:
result[i["selection_id"]] = {'selection_id': i["selection_id"], 'other_data': i["other_data"], 'value_dict': []}
result[i["selection_id"]]["value_dict"].append({'value': i["value"], "value_name": i["value_name"]})
这对我不起作用。
如果我能在网上找到任何帮助或其他文献,我们将不胜感激!
【问题讨论】:
-
“它不起作用” 为什么不呢,出了什么问题?你没有得到想要的输出吗?代码根本没有运行吗?是不是中途出错了?当您寻求调试帮助时,您提供的相关详细信息越多越好。
-
对于初学者来说,它给了我一个 KeyError: 'onsale'。但正如上面的代码所示,我在列表中有 onsale。其次,我找到的这段代码是为我找到的类似问题提供的解决方案,不完全是我想要的,但我认为这是一个很好的起点。
标签: python python-3.x list dictionary scripting