2016-05-24 8 views
-1

Ich habe Code implementiert, um den DB mit dem CLI-Client zu erreichen.Auf bestimmten Wert vom Klassenobjekt prüfen und den Wert eines anderen Schlüssels erhalten

Ich kann in der Lage sein, die Werte nach Bedarf zu erhalten.

Betrachten Sie den folgenden Code ein:

# Establish the connection Cloudkitty 
ck = client.get_client(kwargs_conn.get('cloudkitty_version'), **kwargs_conn) 

list_services = ck.hashmap.services.list() 

for services in list_services: 

     print services 
     print(type(services)) 

Es wird die Ausgabe erzeugen, wie folgt:

<hashmap.Service {u'service_id': u'2c6e0447-0cdb-4d12-8511-4544ba0d03b5', u'name': u'compute'}> 
<class 'cloudkittyclient.v1.rating.hashmap.Service'> 
<hashmap.Service {u'service_id': u'48297131-de33-48ad-b5b5-43d3a3177841', u'name': u'volume'}> 
<class 'cloudkittyclient.v1.rating.hashmap.Service'> 

Output retuned benutzt wird ein Klassenobjekt zu sein.

Jetzt hier muss ich nach dem zurückgegebenen Objekt für einen bestimmten Wert für den Schlüssel überprüfen. Um genau zu sein, möchte ich überprüfen, ob es den 'Namen' als 'compute' hat, wenn ja, muss ich die service_id derselben bekommen.

Jemand lassen Sie mich wissen, wie wir das gleiche erreichen können.

Bibliothek verwendet: https://github.com/openstack/python-cloudkittyclient

+1

Was ist 'hashmap.Service'? Fügen Sie einen Verweis auf die Bibliothek hinzu, die Sie verwenden, um dies zu erhalten. – AKS

+0

Probieren Sie 'print (dir (services))', um die Attribute zu sehen. Ein Debugger mit GUI, wie es mit einer IDE kommt, wird auch eine Hilfe sein, um das Innere des Objekts zu sehen. –

Antwort

1

auf einige tests in der Bibliothek der Suche, es scheint, dass Sie direkt die Felder wie service_id zugreifen:

for service in list_services: 
    if service.name == 'compute': 
     print(service.service_id) 

Oder, wenn Sie die Service-IDs für alle Dienstleistungen erhalten möchten, wo Name ist compute:

service_ids = [service.service_id for service in list_services if service.name == 'compute'] 
+1

Das funktioniert gut ...! – Sparky

0
if services.get("name") == "compute": 
     id_ = services.get("service_id") 

     #assuming li = [] declaration above you could add that to a list 
     # of IDs 
     li.append(id_) 

Hinweis Ich bin von den Drucken unter der Annahme, oben, dass die Klasse im Verhalten Wörterbuch-like ist.

Verwandte Themen