2016-12-10 2 views
-1

Im Versuch, diesen Wörterbuch niedrigste Zahl von höchster Zahl zu sortieren. Allerdings habe ich versucht, das Wörterbuch zu sortieren, aber jedes Mal, wenn der Fehler: TypeError: String-Indizes müssen ganze Zahlen sein kommt immer wieder. Dies ist, was ichSortierung Wörterbuch in einem Wörterbuch Python

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 

codiert Wie soll ich diese sortieren, so dass die „media_count“ cound höchsten zum niedrigsten gehen ..

{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}} 

Antwort

0

Verwenden Sie den folgenden Ansatz, um die benötigten Ergebnisse zu erhalten:

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

die Sequenz, die sortiert werden müssen, ist liste['data']

0
newlist = sorted([i['media_count']for i in liste['data']], reverse=True) 
print(newlist) 

aus:

[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] 
Verwandte Themen