2017-05-08 2 views
0

Ich habe die unten dict in orts-kann nicht für einen Schlüssel in einem Python dict suchen

import collections 
tags = [ 
    { 
     "Key": "Name", 
     "Value": "Peter" 
    }, 
    { 
     "Key": "Email", 
     "Value": "[email protected]" 

    }, 
    { 
     "Key": "City", 
     "Value": "Paris" 

    }, 
] 

Im Versuch, für den Wert von Email Adresse zu suchen, aber im nicht in der Lage.

vorschlagen freundlicherweise eine Logik für mich, diesen Wert zu finden out-

+0

Haben Sie versucht, 'tags.get (" Email ")'? – quantik

+5

@quantik hast du das selbst versucht? – vaultah

+0

@quantik: Nein, das funktioniert nicht .. –

Antwort

4

Iterate über die tags, überprüfen Sie jedes tag ‚s 'Key' für 'Email'. Wenn gefunden, erhalten Sie die 'Value'.

for tag in tags: 
    if tag['Key'] == 'Email': 
     print('Email is', tag['Value']) 
     break 
+0

das funktioniert perfekt auch ohne die "Pause" -Sektion .. Vielen Dank. –

3

Versuchen Sie folgendes:

[dic['Value'] for dic in tags if dic['Key'] =="Email"] 

Ausgang:

['[email protected]'] 

Update für mehrere Werte:

Angenommen, Sie haben:

tags = [ 
    { 
     "Key": "Name", 
     "Value": "Peter" 
    }, 
    { 
     "Key": "Email", 
     "Value": "[email protected]" 

    }, 
    { 
     "Key": "Email", 
     "Value": "[email protected]" 

    }, 

    { 
     "Key": "City", 
     "Value": "Paris" 

    }, 
] 

die Ausgabe wird:

['[email protected]', '[email protected]'] 
+0

Tiny, Ja, das funktioniert auch prima ([dic ['Value'] für dic in Tags wenn dic ['Key'] == "Email"]) ' –

+0

@AlanJebakumar Ja, und es wird alle Werte finden eine Liste für 'Key ==" Email "' –

Verwandte Themen