【发布时间】:2018-08-06 10:51:46
【问题描述】:
我想创建一个字典,使其包含另一个键值对。 在字典中使用更新方法时,它会覆盖旧的键值对。
import yaml
d1={}
l1=[]
d2={}
with open("testspec.yaml","r") as stream:
d1.update(yaml.load(stream))
l1=d1['TestSpec'].keys()
print(l1)
for i in l1:
#d2[i]='None'
for key,value in d1['TestSpec'][i].items():
if "STEP" in key:
d2.update({i : {key :value}})
#print(d1['TestSpec'][i])
else:
del d1['TestSpec'][i][key]
#print(d1)
print(d2)
l1/print(l1) 的输出:
['A1', 'A2', 'A3', 'A4']
最终输出/打印(d2):
{'A1': {'STEP_8': 'A1_08'}, 'A2': {'STEP_12': 'A2_12'}, 'A3': {'STEP_34': 'A3_34'}, 'A4': {'STEP_8': 'A4_08'}}
从 d1['TestSpec'][i].items() 返回键值对的 for 循环如 STEP_1 : A1_1 STEP_2 : A1_2
等等……
预期输出:
{'A1': {'STEP_1': 'A1_1','STEP_2': 'A1_2','STEP_3': 'A1_3'},} 也适用于所有 A2、A3、A4。
【问题讨论】:
-
欢迎来到 SO。请提供 minimal reproducible example。我们无权访问您输入的
yaml文件,因此请提供完整的输入示例。
标签: python dictionary