2013-07-01 45 views
1

我有一個名爲'myjson'的詞典,它包含一個詞典列表,由製表符分隔的電子表格的列名索引。電子表格的每一行都是一個字典,其中的鍵與電子表格的列相對應,並且對應於特定行中的條目的值。如何訪問字典列表中的值?

簡恩:

{'name':'Sam', 'DoB': 5/23/2000'} 
{'name':'Jon', 'DoB': 5/10/2000'} 

我需要訪問名稱「列」或「設置值」(不知道如何引用它們)?

我該怎麼做? 有很多的麻煩,試圖

myjson[0].itervalues()給了我所有的值

myjson[0][name]沒有工作...


加入到這個:

我想解析包含名稱和學位的字符串。我有很長的這些列表。有些不包含學位,有些包含一個,有些包含多個。

防爆字符串:

Sam da Man J.D. 
Green Eggs Jr. Ed.M. 
Argle Bargle Sr. MA 
Cersei Lannister M.A. Ph.D. 

據我所知道的,進來以下模式的程度:

x.x. 
x.x.x. 
x.x.xx. 
x.xx. 
xx.x. 
x.xxx. 
two caps (ex: 'MA') 

我將如何解析呢?我一直在閱讀正則表達式,並認爲.match()可能是要走的路,但我不知道如何有一個匹配的模式列表。

謝謝!

+0

你應該問的一個新問題 –

+0

如果[這](http://stackoverflow.com/questions/17412017/how-to-access-問題已經完成,你可以通過點擊右鍵接受一個問題。如果你想 –

回答

3

您已經提供字典中的字符串'name'的密鑰,因此您需要使用它來訪問它。 myjson[0]['name']應該給你你想要的。

3

使用'name'不是name,因爲沒有引號python會認爲你指的是一些變量name

使用列表理解來獲取所有這些值:

>>> lis = [{'name':'Sam', 'DoB': '5/23/2000'},{'name':'Jon', 'DoB': '5/10/2000'}] 
>>> [x['name'] for x in lis] 
['Sam', 'Jon'] 
+0

OP的一個混淆是爲什麼'myjson [0] .itervalues()'和'myjson [0] [name]'是相同的,讀最後一行。 (點還沒有回答) –

+0

@GrijeshChauhan不,他們是不一樣的,在閱讀OP的[評論](http://stackoverflow.com/questions/17412017/how-to-access-a-value-in-a-list字典/ 17412059?noredirect = 1#comment25285529_17412047)我認爲引號是問題所在。 –

+0

嗯注意:)你是正確的 –