【发布时间】:2021-10-26 11:31:21
【问题描述】:
我有一个来自用户的输入列表和一个标准配置。只有 user_input 可以更改。基于 user_input ,只需要在字典中选择所需的数据。即大部分配置将保持原样,只是根据 user_input 过滤水果。
user_input = ['Apple','Grapes','Watermelon']
superset_config = """
[
{
"input":"source_1",
"operation":"add",
"fruits": {
"Apple":"Red",
"Grapes": ["Red","Yellow"],
"Orange": "Yellow"
},
"output":"target_1"
},
{
"input":"source_2",
"fruits": { "Watermelon":"green"},
"output":"target_2"
}
]
"""
期望的结果:只需从水果中删除“橙色”,因为橙色不是用户输入的一部分。其余一切都是一样的。
[
{
"input":"source_1",
"operation":"add",
"fruits": {
"Apple":"Red",
"Grapes": ["Red","Yellow"]
},
"output":"target_1"
},
{
"input":"source_2",
"fruits": { "Watermelon":"green"},
"output":"target_2"
}
]
变换:
import json
superset_definitions = json.loads(superset_config)
superset_definitions
filtered_common_defintion = []
for each_input in user_input:
for each_node in superset_definitions:
if each_input in each_node['fruits'].keys():
temp_dictionary = {}
temp_dictionary[each_input] = each_node['fruits'][each_input]
filtered_common_defintion.append(temp_dictionary)
filtered_common_defintion
上面的代码对水果执行过滤,但我不确定如何捕获配置的剩余元素。有人可以指导一下吗?
【问题讨论】:
-
创建
each_input的副本,然后过滤新输入中的水果,然后将其附加到您的filtered_common_definition
标签: python json python-3.x dictionary