2013-08-20 46 views
2

我從我的功能片段,Django的:unhashable類型:「名單」

它僅僅把Django的查詢集對象獲取並轉換爲使用列表中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)) 

ERROR對於上述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' 

變量慧聰印刷字典的名單values.But我能不能用itemgetter keyfunc進行排序。

你能幫我找出這個問題嗎?

回答

1

忘記了擴大。

n = hc.sort(key=operator.itemgetter(*_arg)) 
0

列表不是可哈希類型。使用不同的序列類型,例如當前有listtuple

但是,鑑於_arg是一個序列,是你想要爲你的itemgetter?或者你想要其中的一個值?

+0

是arg是一個序列.. ['con_name','rating','review_no'] – Nava

相關問題