Bonjour Guillaume, tu souhaites donc caster ton objet de type SecurityGroup vers un dictionnaire python. Tu dois pouvoir utiliser quelque chose comme cela (attention, non testé) : liste = [] for i in results: liste.append(vars(i)) Ou bien sa forme contracté : liste = [ vars(i) for i in results ] Bonne journée, Tristan Le 06/10/2020 à 17:38, COMTE Guillaume a écrit :
Bonjour à tous,
Je me connect à l’API comme ceci :
client = connection.Connection(
project_id=creddict["project_id"],
cloud=creddict[“cloud”],
region=creddict["region"],
ak=creddict["access_key"],
sk=creddict["secret_key"]
)
Ensuite je fait un call à :
Result = client.network.security_groups()
Et la structure que je reçois est un générateur dont chaque éléments de ce type :
For i in Result :
Print(Result)
L’affichage est le suivant :
openstack.network.v2.security_group.SecurityGroup(id=XXX, name=SG_TEST, description=created on 2019/06/03 13:08:37.195 +0000, tenant_id=YYYY, security_group_rules=[{'id': ZZZZ’, 'direction': 'ingress', 'protocol': 'tcp', 'ethertype': 'IPv4', 'description': '', 'remote_group_id': None, 'remote_ip_prefix': '0.0.0.0/0', 'tenant_id': 'TTTTT', 'port_range_max': 666, 'port_range_min': 666, 'security_group_id': GGGG', 'remote_address_group_id': None}, {'id': FFFFF', 'direction': 'egress', 'protocol': None, 'ethertype': 'IPv6', 'description': None, 'remote_group_id': None, 'remote_ip_prefix': None, 'tenant_id': 'AAAA', 'port_range_max': None, 'port_range_min': None, 'security_group_id': CCCCC', 'remote_address_group_id': None}, {'id': ‘SSSSS', 'direction': 'egress', 'protocol': None, 'ethertype': 'IPv4', 'description': None, 'remote_group_id': None, 'remote_ip_prefix': None, 'tenant_id': 'LLLLL', 'port_range_max': None, 'port_range_min': None, 'security_group_id': ‘FFFFFF’, 'remote_address_group_id': None}], created_at=2019-06-03T13:08:38, updated_at=2019-06-03T13:08:38)
Si je veux l’une des informations que je vois dans ce print, je suis « obligé » de fait le call par exemple : Result.description pour obtenir la description.
Je voudrais en fait récupérer tout ce qu’il se trouve entre les parenthèses afin d’alimenter une liste.
J’arrive pas à voir quelle astuce python me permettrait de faire ça, ni si j’utilise la bonne classe afin d’obtenir sous forme de liste les informations que je vois que je touche du doigt mais qui se trouve entre les parenthèses de openstack.network.v2.security_group.SecurityGroup
Merci d’avance,
/Cordialement / Best Regards, /
Guillaume COMTE
3DEXPERIENCEforAll
Office: +33 1 6162 5251 guillaume.comte@3ds.com <mailto:Guillaume.COMTE@3ds.com>
3DS Logo
*3DS.COM* <http://www.3ds.com>
/Dassault Systèmes SE/| /10, Rue Marcel Dassault, Paris Campus/ | /78140 Vélizy-Villacoublay/ | /France/
/Cordialement / Best Regards, /
Guillaume COMTE
3DEXPERIENCEforAll
Office: +33 1 6162 5251 guillaume.comte@3ds.com <mailto:Guillaume.COMTE@3ds.com>
3DS Logo
*3DS.COM* <http://www.3ds.com>
/Dassault Systèmes SE/| /10, Rue Marcel Dassault, Paris Campus/ | /78140 Vélizy-Villacoublay/ | /France/
This email and any attachments are intended solely for the use of the individual or entity to whom it is addressed and may be confidential and/or privileged.
If you are not one of the named recipients or have received this email in error,
(i) you should not read, disclose, or copy it,
(ii) please notify sender of your receipt by reply email and delete this email and all attachments,
(iii) Dassault Systèmes does not accept or assume any liability or responsibility for any use of or reliance on this email.
Please be informed that your personal data are processed according to our data privacy policy as described on our website. Should you have any questions related to personal data protection, please contact 3DS Data Protection Officer at 3DS.compliance-privacy@3ds.com <mailto:3DS.compliance-privacy@3ds.com>
For other languages, go to https://www.3ds.com/terms/email-disclaimer
_______________________________________________ OpenStack-fr mailing list OpenStack-fr@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-fr