2016-04-29 58 views
-4

我是一個Python新手編程,我無法在複雜字典中找到元素(至少對我來說)。如何在嵌套類的字典中找到一個項目?

這個詞典包含項目「FareAttribute」,同時這個類包含元素「FareRule」。我想找到與FareRule.origin_id ==「city1」和FareRule.destination_id ==「city2」匹配的元素。

我怎麼能找到這個?

感謝您提前發表任何評論。我有點失落

編輯添加字典(打印第一項時輸出)。這些課程屬於轉運圖書館(Google Transit)。現在我不能執行程序,我出去了。

{u'AA': <FareAttribute [('currency_type', u'EUR'), ('fare_id', u'AA'), ('payment_method', 0), ('price', 1.5), ('rules', [<FareRule [('contains_id', None), ('destination_id', u'A'), ('fare_id', u'AA'), ('origin_id', u'A'), ('route_id', None)]>]), ('transfer_duration', None), ('transfers', 0)]>,...} 
+1

請添加字典,你也嘗試什麼。 – AKS

+0

請提供[簡短,獨立,正確(可編譯),示例](http://sscce.org/)。 – timgeb

+0

你可以發佈字典嗎?因此,我可以看看字典的結構 –

回答

1

EDIT2請嘗試這樣的事情(如蟒蛇2.7):

for fare in schedule.GetFareAttributeList(): 
    for rule in fare.GetFareRuleList(): 
     if rule.origin_id == 'B1' and rule.destination_id == 'B1': 
      print rule 
+0

感謝您的回答,但是如果我嘗試使用所有元素創建dt對象返回語法錯誤。 如果我嘗試使用函數來獲取完整的字典返回語法錯誤。 ()如果v.rules [0] .origin_id =='B1'和v.rules [0] .destination_id = ='B1'] 文件「」,第1行 print [k,v for k,v in schedule.GetFareAttributeList()。items()if v.rules [0] .origin_id =='B1'and v。規則[0] .destination_id =='B1'] ^ SyntaxError:invalid syntax' – crossmax

+0

好吧!非常感謝。你的代碼就像一個魅力。永遠感激 – crossmax