如何在python中将具有字典列表作为值的字典对象排序?

时间:2019-07-05 12:07:43

标签: python json

我正在尝试按降序在“ resume_match_score”的基础上对以下字典进行排序。

{'16334': [{'skill_match': {'java': 33,
    'python': 5,
    'swing': 1,
    'apache cassandra': 1},
   'skill_match_score': 0.8},
  {'doc_attachment': '97817_1560102392mahesh-java.docx',
   'document_path': '06_2019',
   'firstname': 'nan',
   'lastname': 'nan'},
  {'job_title_match': {'java developer': 3}, 'job_title_match_score': 0.5},
  {'resume_match_score': 0.71}],
 '4722': [{'skill_match': {'java': 24, 'python': 1, 'hadoop': 31},
   'skill_match_score': 0.6},
  {'doc_attachment': '4285_1560088607Srujan_Hadoop.docx',
   'document_path': '06_2019',
   'firstname': 'nan',
   'lastname': 'nan'},
  {'job_title_match': {'hadoop developer': 3, 'java developer': 2},
   'job_title_match_score': 1.0},
  {'resume_match_score': 0.72}]

我尝试如下,这似乎在工作,但只给出了密钥而不是完整的字典对象。

result = sorted(test_d, key=lambda k: test_d[k][3].get("resume_match_score", 0), reverse=True)

result = ['4722', '16334']

如何根据键resume_match_score按排序顺序获取完整的词典?

谢谢。

1 个答案:

答案 0 :(得分:2)

我不确定这是否是正确的方法,但是您可以通过for循环并使用(键,值)对的元组来更改每个键。

基本上,您可以添加如下内容:

DSSDocument