在python字典中排序字典

2024-09-28 22:20:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着把这本词典从最高的数字排序到最低的数字。不过我试着整理字典,但每次都出现错误: TypeError:字符串索引必须是整数 不断地出现。这是我写的

aurl_params = {}
dayum = requests.get(starturl, params = aurl_params)
liste = dayum.json()
newlist = sorted(liste, key=lambda k: k['data'[0].get('media_count'),reverse=True)
print newlist

我该如何排序,使“媒体计数”从高到低

{u'data': [{u'media_count': 103, u'name': u'h\xe9llo'},
           {u'media_count': 12507183, u'name': u'hello'},
           {u'media_count': 867, u'name': u'hell\xf4'},
           {u'media_count': 588, u'name': u'hell\xf3'},
           {u'media_count': 321, u'name': u'he\u013alo'},
           {u'media_count': 236, u'name': u'hell\xf8'},
           {u'media_count': 6009, u'name': u'hell\xf6'},
           {u'media_count': 405, u'name': u'hello\U0001f61c'},
           {u'media_count': 405, u'name': u'hello\U0001f30e'},
           {u'media_count': 5717, u'name': u'hello\u270c'},
           {u'media_count': 47420, u'name': u'hellosun'},
           {u'media_count': 590676, u'name': u'helloworld'},
           {u'media_count': 94422, u'name': u'hellomay'},
           {u'media_count': 87159, u'name': u'helloicp'},
           {u'media_count': 344138, u'name': u'helloweekend'},
           {u'media_count': 341243, u'name': u'hellospring'},
           {u'media_count': 538183, u'name': u'helloween'},
           {u'media_count': 235522, u'name': u'hello_france'},
           {u'media_count': 375091, u'name': u'hellosummer'},
           {u'media_count': 319766, u'name': u'hellobc'},
           {u'media_count': 455104, u'name': u'hello2016'},
           {u'media_count': 43682, u'name': u'hellogoodbye'},
           {u'media_count': 166595, u'name': u'hellofresh'},
           {u'media_count': 135937, u'name': u'hellothere'},
           {u'media_count': 42887, u'name': u'hellopeople'},
           {u'media_count': 62131, u'name': u'helloinstagram'},
           {u'media_count': 347414, u'name': u'hello2015'},
           {u'media_count': 331175, u'name': u'hellodecember'},
           {u'media_count': 49119, u'name': u'hellovenus'},
           {u'media_count': 41032, u'name': u'hellonwheels'},
           {u'media_count': 64925, u'name': u'hello2013'},
           {u'media_count': 69764, u'name': u'helloproject'},
           {u'media_count': 70193, u'name': u'hello_bluey'},
           {u'media_count': 64549, u'name': u'hellosunday'},
           {u'media_count': 42035, u'name': u'hellonearth'},
           {u'media_count': 56714, u'name': u'helloladies'},
           {u'media_count': 198943, u'name': u'helloseptember'},
           {u'media_count': 67861, u'name': u'helloapril'},
           {u'media_count': 31560, u'name': u'hellotuesday'}],
 u'meta': {u'code': 200}}

Tags: namehellodataget排序count数字params
2条回答
newlist = sorted([i['media_count']for i in liste['data']], reverse=True)
print(newlist)

输出:

[12507183, 590676, 538183, 455104, 375091, 347414, 344138, 341243, 331175, 319766, 235522, 198943, 166595, 135937, 94422, 87159, 70193, 69764, 67861, 64925, 64549, 62131, 56714, 49119, 47420, 43682, 42887, 42035, 41032, 31560, 6009, 5717, 867, 588, 405, 405, 321, 236, 103]

使用以下方法获得所需结果:

newlist = sorted(liste['data'], key=lambda o: o['media_count'], reverse=True)
print(newlist)

需要排序的序列是liste['data']

相关问题 更多 >