Вы хотите, чтобы в качестве значения, как список, вам нужно было добавлять каждый элемент, а не заменять предыдущий, составлять список на каждой итерации, чтобы сохранить все, что вам нужно
data = {"Test Suite # 1": ["unnecessary info", "tc1", "tc2", "tc3", "unnecessary info"],
"Test Suite # 2": ["unnecessary info", "tc4", "tc5", "tc6", "unnecessary info"]}
new_dict = {}
tc_flag = "tc"
for key, value in data.items():
keep_values = []
for items in value:
if tc_flag in items: # this flag basically looks for items with tc
keep_values.append(items)
new_dict[key] = keep_values
print(json.dumps(new_dict)) # {"Test Suite # 1": ["tc1", "tc2", "tc3"], "Test Suite # 2": ["tc4", "tc5", "tc6"]}
Это можно сделать с defaultdict
, который автоматически использует то, что вы даете в качестве значения, здесь list
new_dict = defaultdict(list)
for key, value in data.items():
for items in value:
if tc_flag in items:
new_dict[key].append(items)
Вы можете сократить это с помощью dict-compceptionsion
new_dict = {
key: [item for item in values if tc_flag in item]
for key, values in data.items()
}