2016-03-14 72 views
0

我有一本字典命名KYCPython來字典表

kyc = {u'0G-0009': {u'JIMMY UNDERSON': {u'Z609 GURU': {'d8': 46, 'd6': 57, 'd7': None, 'd4': 41, 'd5': 251, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0008': {u'ASSOU EKOTO': {u'13-2003 GURU RED': {'d8': None, 'd6': None, 'd7': None, 'd4': None, 'd5': None, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0007': {u'WILFRED BONY': {u'17-2849 RUT RED': {'d8': None, 'd6': None, 'd7': None, 'd4': 26, 'd5': 35, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0006': {u'PETER MICHELLE': {u'Z007 GURU': {'d8': 230, 'd6': None, 'd7': None, 'd4': None, 'd5': None, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0005': {u'DICKSON GONA': {u'13-2002 RUT RED': {'d8': None, 'd6': None, 'd7': None, 'd4': 70, 'd5': 77, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0004': {u'KASAGO PEACE': {u'Z2053 GURU': {'d8': None, 'd6': None, 'd7': None, 'd4': None, 'd5': None, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0003': {u'CEDRIC ABDU': {u'Z0191 GURU': {'d8': None, 'd6': None, 'd7': None, 'd4': None, 'd5': None, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0002': {u'CEASER SAMPIO': {u'Z1146 GURU': {'d8': None, 'd6': None, 'd7': None, 'd4': None, 'd5': None, 'd2': None, 'd3': None, 'd1': None}}}, u'0G-0001': {u'JOHN SPEKE': {u'Z 006 GURU': {'d8': 21, 'd6': 34, 'd7': None, 'd4': None, 'd5': None, 'd2': None, 'd3': None, 'd1': None}}}} 

鍵D8到D1 reprent日期從1日至8日,即 - 銷售價值附加到他們

我想從這個字典在下面的結構的打印數據:

0G-0009 |JIMMY UNDERSON |Z609 GURU |46 

0G-0009 |JIMMY UNDERSON |Z609 GURU |57 

0G-0009 |JIMMY UNDERSON |Z609 GURU |None 

0G-0009 |JIMMY UNDERSON |Z609 GURU |41 

0G-0009 |JIMMY UNDERSON |Z609 GURU |251 

0G-0009 |JIMMY UNDERSON |Z609 GURU |None 

0G-0009 |JIMMY UNDERSON |Z609 GURU |None 

0G-0008 |ASSOU EKOTO |13-2003 GURU RED |None 

0G-0008 |ASSOU EKOTO |13-2003 GURU RED |None 

0G-0008 |ASSOU EKOTO |13-2003 GURU RED |None 

0G-0008 |ASSOU EKOTO |13-2003 GURU RED |None 

0G-0008 |ASSOU EKOTO |13-2003 GURU RED |None 

0G-0008 |ASSOU EKOTO |13-2003 GURU RED |None 

0G-0008 |ASSOU EKOTO |13-2003 GURU RED |None 

- 等

我當前的代碼是

for i in range(1,9): 
    for k1 in kyc: 
     #print k1, 
     for k2 in kyc[k1]: 
      #print k2, 
      for k3 in kyc[k1][k2]: 
       #print k3, 
       for k4 in kyc[k1][k2][k3]: 
        print k1, 
        print k2, 
        print k3, 
        print kyc[k1][k2][k3]['d'+str(i)] 

但它返回的每一行的8倍(從範圍),我應該如何處理這個

回答

1

你當前迭代字典中的8次所有的按鍵,因爲你的第一個和最後一個循環做同樣的事情。您的第一個或最後一個for循環是不必要的。我擺脫了第一個,並得到了我認爲這是正確的結果:

for k1 in kyc: 
    for k2 in kyc[k1]: 
     for k3 in kyc[k1][k2]: 
      for k4 in kyc[k1][k2][k3]: 
       print k1, 
       print k2, 
       print k3, 
       print kyc[k1][k2][k3][k4]