遍历OrderedDict对象错误

时间:2019-04-23 14:03:51

标签: python-2.7 ordereddictionary

我正在尝试学习如何操作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

1 个答案:

答案 0 :(得分:1)

在这方面,

OrderedDict的工作就像dict一样。当您遍历它们时,会得到密钥。

for fdata in fdata_models:
    print("fdata['model']", " keys are ", fdata_models[fdata].keys())

(还要注意,... = OrderedDict()的所有三行实际上都没有做任何有用的事情,因为在使用前,您再次重新绑定了fdata_modelsfdata_modelfdata他们。