好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python编程如何对列表中字典元素进行排序的方法详解

这篇文章主要介绍了Python编程对列表中字典元素进行排序的方法,涉及Python针对列表及字典元素的遍历、读取、转换相关操作技巧,需要的朋友可以参考下

a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}'
b = '{"ROAD": [{"name": "no1"}, {"id": 123}]}' 
>>> a = [{'a':1, 'b':2}, {'c':3}]
>>> a
[{'a': 1, 'b': 2}, {'c': 3}]
>>> b = set(a)
Traceback (most recent call last):
 File "<pyshell#2>", line 1, in <module>
  b = set(a)
TypeError: unhashable type: 'dict' 
>>> p = [{'b': 2}, {'a': 1, 'c': 3}]
>>> q = [{'a': 1, 'c': 3}, {'b': 2}]
>>> p
[{'b': 2}, {'a': 1, 'c': 3}]
>>> q
[{'a': 1, 'c': 3}, {'b': 2}]
>>> pp = sorted(p)
>>> qq = sorted(q)
>>> pp
[{'b': 2}, {'a': 1, 'c': 3}]
>>> qq
[{'b': 2}, {'a': 1, 'c': 3}]
>>> pp == qq
True
>>> p == q
False 
import json
def compare_json(a, b):
  aa = json.loads(a)
  bb = json.loads(b)
  len_a = len(aa)
  len_b = len(bb)
  if len_a != len_b:
    return False
  else:
    for key in aa:
      if not bb.has_key(key):
        return False
      else:
        if sorted(aa[key]) != sorted(bb[key]):
          return False
  return True
if name == "main":
  a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}'
  b = '{"ROAD": [{"name": "no1"}, {"id": 123}]}'
  print compare_json(a, b) 

细节:自己写json格式时,a = "{'road':1}" json.loads(a) 错误,得写成a = '{"road:1}' 【单引号在外】

以上就是Python编程如何对列表中字典元素进行排序的方法详解的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于Python编程如何对列表中字典元素进行排序的方法详解的详细内容...

  阅读:40次