簡體   English   中英

Django:不可用類型:'list'

[英]Django: unhashable type: 'list'

我的功能片段,

它只是從django queryset對象獲取並轉換為list以使用itemgetter和itertools方法刪除重復項,python從列表中刪除重復的字典

   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進行排序。

你能幫我辨認一下這個問題嗎?

你忘記了擴展。

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

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

但是,假設_arg是一個序列,那么你想要的是itemgetter嗎? 或者你想要其中的一個值?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM