我的功能片段
它只是从django queryset对象获取并转换为list以使用itemgetter和itertools方法(如python remove duplicate dictionaries from a list
删除重复项 hc = HomeContractorDetails.objects.filter(category=domain_obj.category,city__icontains=domain_obj.city).values(*args)
_arg = list(args)
_arg.remove('id')
hc = list(hc)
print _arg,hc
n= hc.sort(key=operator.itemgetter(_arg))
上述STMT的错误
['con_name', 'rating', 'review_no'] [{'rating': u'4.32', 'review_no': u'51', 'id': 3781, 'con_name': u"Carter's Mechanical, Inc."}, {'rating': u'4.02', 'review_no': u'29', 'id': 3782, 'con_name': u'All Mechanical Plumbing & Heating, Inc.'}, {'rating': u'4.17', 'review_no': u'5', 'id': 3783, 'con_name': u'Marcelo Construction'}, {'rating': u'4.63', 'review_no': u'34', 'id': 3784, 'con_name': u'Jay Ell Plumbing and Heating Company, Inc.'}, {'rating': u'4.94', 'review_no': u'24', 'id': 3785, 'con_name': u'Franco Belli Plumbing and Heating and Sons, Inc.'}]
File "/home/gridlex/workspace/HA/article/views.py" in fetch_contractor_tables
213. n= hc.sort(key=operator.itemgetter(_arg))
Exception Type: TypeError at /article/top-rated-plumbing-contractors-in-new-york
Exception Value: unhashable type: 'list'
变量hc打印dict值列表。但是我无法使用itemgetter keyfunc进行排序。
你能帮我辨认一下这个问题吗?
答案 0 :(得分:1)
你忘记了扩展。
n = hc.sort(key=operator.itemgetter(*_arg))
答案 1 :(得分:0)
列表不是可哈希类型。使用其他序列类型,例如您当前拥有tuple
的{{1}}。
但是,鉴于list
是一个序列,您对_arg
的需求是什么?或者你想要其中的一个值?