2016-06-02 3 views
0

Ich habe query.oderby, die eine Liste der dict Objekte ist.So finden Sie einen bestimmten Schlüssel in der Liste der Wörterbuchobjekte in Python

[{'name': 'asc'}, {'user_id': 'desc'}] 

ich überprüfen, ob die Liste mit den folgenden

for query in query.orderby: 
    if query.keys().__contains__('user_id'): 
     if query['user_id'] == 'desc': 
      #then sort in desc order 
     elif query['user_id'] == 'asc': 
      #the sort in asc order 
     else: 
      #move to next dict object 
      query = query + 1 

    else: 
     #do something else if no user_id found in the list of dict 

user_id hat Wie kann ich für user_id überprüfen sonst ohne enthält() und unter Verwendung der for-Schleife? Ich versuchte

if query.keys() == 'user_id': 
    #then do something 

Aber das half nicht.

Antwort

0

Sie können so etwas wie dieses verwenden, wenn u ur-Code einfach zu suchen.

l = [{'name': 'asc'}, {'user_id': 'desc'}] 

for query in l: 
    if (query.has_key('user_id')): 
     print "Key Found" 
+0

Danke das hat geholfen. Wie kann ich zum nächsten dict Objekt springen incase Abfrage ['user_id'] ist nicht 'asc' oder 'desc'? In meinem Fall benutze ich einfach query = query + 1. Gibt es Alternativen? – NSP

+0

Ich glaube, ich habe nicht ganz verstanden, was du gesagt hast. Versuchen Sie zu sagen, dass Sie auch den Wert von query ['user_id'] überprüfen möchten? – DineshKumar

+0

@sanjana Wenn Sie fragen, wie Sie zum nächsten dict-Element in der Liste iterieren, müssen Sie sich keine Gedanken über das Inkrementieren machen, da die for-Schleife die Aufgabe erledigt. – DineshKumar

2

Sie können dies tun:

>>> ar = [{'name': 'asc'}, {'user_id': 'desc'}] 
>>> any('user_id' in elt for elt in ar) 
True 

Sie können in Bezug auf any()here weitere Informationen finden.

Ich hoffe, es wird hilfreich sein.

+0

Danke für die antwort. Aber ich denke meine Frage war nicht sehr klar. Ich habe die Frage geändert. Bitte lassen Sie mich wissen, was ich versuchen kann. – NSP

0

ohne Schleife ..

any(map((lambda x: True if 'user_id' in x.keys() else False), ar)) 
Verwandte Themen