2013-07-01 51 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

嗯注意:)你是正确的 –