在python的嵌套字典中应用循环时出错

问题描述

我有一个嵌套字典,里面有一些键值对 并在应用 FOR LOOP 以从中获取值时出错。代码就像:

gl = { 'GLEN' : {'GLENS08907' : {'801-011-02M' : 'GLEN PART'}},'GLENS10062': {'M85049/38': 'RTIO PART'}
}

for mfr,doc in gl.items():
    print('Print Mfr is : ',mfr)
    for i,k in doc.items():
        print('Doc is : ',i)
        for key in k:
            print(key + ' : ',k[key] )

我试图获得如下输出

Print Mfr is :  GLEN
Doc is :  GLENS08907
801-011-02M :  GLEN PART
Doc is :  GLENS10062
M85049/38 :  RTIO PART

但是执行代码后报错。

Print Mfr is :  GLEN
Doc is :  GLENS08907
801-011-02M :  GLEN PART
Print Mfr is :  GLENS10062
Doc is :  M85049/38
Traceback (most recent call last):
   line 90,in <module>
    print(key + ' : ',k[key] )
TypeError: string indices must be integers

请提出在嵌套字典中使用 For 循环的正确方法

解决方法

在你的字典中gl['GLEN'] = 'GLEN' : {'GLENS08907' : {'801-011-02M' : 'GLEN PART'} 在嵌套字典中有嵌套字典,但 gl['GLENS10062'] = {'M85049/38': 'RTIO PART'} 没有嵌套字典。 所以在代码中 print(key + ' : ',k[key] ) 键是 R 而不是 RTIO PART

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...