2012-05-22 93 views
0

我有一个包含字典,需要根据字母顺序排序包含字典列表在Python

[ 
    { 
     'index': False, 
     'definition': { 
      'id': 1111111L, 
      'value': u'Large Content' 
     }, 
     'id': 1234567L, 
     'name': { 
      'id': 9999999999L, 
      'value': u'INTRODUCTION' 
     } 
    }, 
    { 
     'index': False, 
     'definition': { 
      'id': 22222222L, 
      'value': u'Large Content' 
     }, 
     'id': 2L, 
     'name': { 
      'id': 3333333333333l, 
      'value': u'Abstract' 
     } 
    }, 
    { 
     'index': False, 
     'definition': { 
      'id': 8888888888L, 
      'value': u'Large Content' 
     }, 
     'id': 1L, 
     'name': { 
      'id': 343434343434L, 
      'value': u'Bulletin' 
     } 
    } 
    { 
     'index': False, 
     'definition': { 
      'id': 1113311L, 
      'value': u'Large Content' 
     }, 
     'id': 333434L, 
     'name': { 
      'id': 9999999999L, 
      'value': u'<b>END</b>' 
     } 
    }, 
] 

我需要根据[“名”] [“值”],按对进行排序列表导致

Abstract 
Bulletin 
INTRODUCTION 
END 

但是,当我做我得到第一

bg = [] 
for n in a: 
    bg = sorted(a, key=lambda n: n["name"]["value"]) 

INTRODUCTION 
END 
Abstract 
Bulletin 
+0

我无法重现您的结果。对于你提供的数据,我得到'[u'END',u'Abstract',u'Bulletin',u'INTRODUCTION']'。 – LaC

+0

我使用http://love-python.blogspot.com/2008/07/strip-html-tags-using-python.html – Rakesh

+0

中的提示删除了html标签我只是表示您的示例不显示问题你有。事实上,对于这四个字,大小写敏感性没有区别。 – LaC

回答

5

为了使这类情况反应迟钝的大写字母tive,将所有内容都放在小写字母中:

bg = sorted(a, key=lambda n: n["name"]["value"].lower()) 
1

因为大写字母按字典顺序较小。在分拣前放下信箱:

key=lambda n: n["name"]["value"].lower()