我正在尝试学习如何操作python2.7 OrderedDict对象。我在程序的前面提供了一个OrderedDict。我试图了解其结构,同时也了解如何操作该对象并从字典中提取各种元素和元素值。
在下面的代码中,我演示了初始有序字典对象 finaldata ,具有一个键 ['models'] 。我使用该键从 finaldata 创建了一个新的有序词典 fdata_models 。然后使用来自 fdata_models 等的键之一的新有序词典。
下面您可以看到我的测试程序及其实验的输出。
我有几个问题,但是最紧迫的是为什么我无法遍历 fdata_models 中的字典对象?
在该问题之后,我尝试使用语法“ fdata_model = fdata_models [0] ”,而不是对密钥 [ 'models'] ,但这也会引发错误。在不知道其实际键值的情况下,是否可以在 fdata_models 中索引第三次出现?
....
fdata_models = OrderedDict()
fdata_model = OrderedDict()
fdata = OrderedDict()
print("finaldata Keys are ", finaldata.keys())
fdata_key = finaldata.keys()
print("finaldata Key is ", fdata_key)
fdata_models = finaldata['models']
print("Number of ", fdata_key, " are ", len(fdata_models))
print("['Models'] Keys are ", fdata_models.keys())
fdata_model = fdata_models['1']
print("Number of models['1'] are ", len(fdata_model))
print(" models['1'] keys are ",fdata_model.keys())
fdata_model = fdata_models['64110']
print("Number of models['64110'] are ", len(fdata_model))
print(" models['64110'] keys are ",fdata_model.keys())
for fdata in fdata_models:
print("fdata['model']", " keys are ", fdata[0].keys())
('finaldata键为',['models'])('finaldata键为', ['models'])
('数量',['型号'],'是',4)
(“ [['Models]]键是”,['123','110','111','112'])
(“型号数['123']是”,7)
(“ models ['123']键是”,['model','Mn','Md','Opt','Vr','SN', 'DA'])(“型号数['110']是”,47)(“型号['64110']键 是“,['model','MajorFWRev','MidFWRev','MinorFWRev',...
'TimeZone','Date_year','Date_month','Date_Day','Time_hour', 'Time_minute','Time_second',...])追溯(最近的通话) 最后):文件/pgms/json.py”,第204行,在 print(“ fdata ['model']”,“键为”,fdata [0] .keys())AttributeError:'str'对象没有属性'keys'
谢谢... RDK
答案 0 :(得分:1)
OrderedDict
的工作就像dict
一样。当您遍历它们时,会得到密钥。
for fdata in fdata_models:
print("fdata['model']", " keys are ", fdata_models[fdata].keys())
(还要注意,... = OrderedDict()
的所有三行实际上都没有做任何有用的事情,因为在使用前,您再次重新绑定了fdata_models
,fdata_model
和fdata
他们。