2015-09-22 40 views
-3

我有一個龐大的系統日誌文件,在其中我有一個是在特定的時間打印出系統數據字典, 讓我們說:如何分析在同一時間在Python 2個字典鍵

{"key1":"val1", "Time":"mon dec 25 12:12:12 2012"} 
{"key2":"val2", "key3": "val3", "Time":"mon dec 25 12:12:13 2012"} 

所以基本上我正在尋找key2之間的一種和操作,它是相應的時間。

我嘗試以下

look = ["key2", "Time"] 

for key, val in my_dict.items(): 
    if key in look: 
     print my_dict[key] 

但是,這將在dict1以及其對應KEY1打印時間戳。

那麼,我怎麼才能找到key2,它是val2在相應的時間?

+2

我真的不明白你對你試圖得到什麼結果的解釋。你能展示一個你想要的輸出的例子嗎? –

+0

你有1個詞典或多個詞典? – Onilol

+0

對不起,說明不好。我有多個字典。但看起來像Apero答案對我來說是正確的。 – kkard

回答

0

檢查關鍵是要先找到,然後打印與「時代」

for key, val in my_dict.items(): 
    if key == "key2": 
     print my_dict[key] 
     print my_dict['Time'] 
0

假設沿關鍵,因爲它沒有完全清楚地知道,LAT登錄是上火類型的字典的:

log = [ 
    {"key1":"val1", "Time":"mon dec 25 12:12:12 2012"}, 
    {"key2":"val2", "key3": "val3", "Time":"mon dec 25 12:12:13 2012"} 
] 

for d in log: 
    if 'key2' in d: 
     print d['Time'] 

這是你所需要的?

0

如果我正確理解你的問題,你正在閱讀字典序列(來自哪裏並不重要),並且想要從中打印出某些值,但前提是兩個值的鍵都存在。在你的例子中,你想要打印第二個字典的val2和時間戳,但是當前的代碼也會打印第一個字典中的時間戳,即使它沒有key2鍵。

如果是這樣,我認爲您需要使用all在打印任何內容之前測試所有請求的密鑰是否存在。

requred_keys = ['key2', 'Time'] 

for my_dict in sequence_of_dicts: 
    if all(key in my_dict for key in required_keys): 
     for key in required_keys: 
      print my_dict[key]