2013-04-24 82 views
1

如何僅在此字典列表中打印「中」或「狀態」?從字典列表中提取字符串


list = [{'status': 'OK', 'mid': '6269'}, {'status': 'OK', 'mid': '6270'},{'status': 'OK', 'mid': '6271'}, {'status': 'OK', 'mid': '6272'}, {'status': 'OK', 'mid': '6273'}, {'status': 'OK', 'mid': '6274'},{'status': 'OK', 'mid': '6288'}, {'status': 'OK', 'mid': '6289'}] 

我想:print list[0]['mid']但它只給 'MID' 值列表中的第一個項目?我怎麼能爲整個list做?

+2

使用'list'作爲變量會影響內置方法'list()'。 – 2013-04-24 12:32:47

回答

8

使用列表理解:

data = [{'status': 'OK', 'mid': '6269'}, 
     {'status': 'OK', 'mid': '6270'}, 
     {'status': 'OK', 'mid': '6271'}, 
     {'status': 'OK', 'mid': '6272'}, 
     {'status': 'OK', 'mid': '6273'}, 
     {'status': 'OK', 'mid': '6274'}, 
     {'status': 'OK', 'mid': '6288'}, 
     {'status': 'OK', 'mid': '6289'}] 

print [item['mid'] for item in data] 

PS:不要對你的變量list,則不能使用內置list然後。

+0

謝謝你的回答,但是你不打電話給變量列表是什麼意思? – 2013-04-24 12:27:57

+2

不要使用像'list'這樣的名字作爲自己的東西,調用你的列表'mylist',或'thelist','data',或者更好的名稱來描述裏面的內容。 – 2013-04-24 12:31:22

+0

啊好吧,我明白了。 以及如何跳過錯誤'NoneType'對象是無法識別的,因爲我試過你在myList上告訴我哪個更大,並且返回這個錯誤:/ – 2013-04-24 12:34:30

1

雖然上面的答案是正確的,但我會嘗試解釋爲什麼OP的原始代碼不起作用。

  1. 首先是變量的名稱。對原始問題的評論足以說明問題
  2. 你說爲什麼打印列表[0] ['mid']只給出第一個值。原因是你只給出列表[0],這是一個包含兩個鍵,狀態和中間的字典,並且您試圖獲得與「中」鍵相對應的值,該值將是單個值

如果您尚未使用List Comprehensions,則可以使用簡單的for循環(範圍從0到您的列表長度)。或者用於列表類型的迭代中的項目。