Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

gestion des clés [valeur] sur différent dict

+3 votes

J'ai 3 structures:
et leur dénominateur commun est cette valeur ‘d83a2a6a-61f6-494a-a67b-3603d1a24291’

cette valeur dans la structure "images" a pour clé ‘instanceuuid’
Et dans SWAP and HOME la clé s'appelle ‘server
id’
voici la structure:
images:

{
    'instance_type_ephemeral_gb': '0', 
    'file': '/v2/images/66ed6348-e96b-42b4-afd2-245892f93263/file', 
    'image_state': 'available', 'schema': '/v2/schemas/image', 
    'backup_type': 'daily', 
    'container_format': 'bare', 
    'owner_id': 'f4467a6710f84dc33900393119a128473', 
    'network_allocated': 'True', 
    'instance_type_vcpus': '2', 
    'instance_type_rxtx_factor': '1.0', 
    'checksum': '95f93551e3a292fa5d6804f51a43bbd5', 
    'created_at': '2015-06-26T03:11:33Z', 
    'instance_uuid': 'd83a2a6a-61f6-494a-a67b-3603d1a24291', 
    'status': 'active', 
    'id': '66ed6348-e96b-42b4-afd2-245892f93263', 
    'instance_type_id': '29', 
    'protected': False, 
    'self': '/v2/images/66ed6348-e96b-42b4-afd2-245892f93263', 
    'instance_type_root_gb': '10', 
    'visibility': 'private', 
    'image_type': 'backup', 
    'instance_type_name': '2_vCPU_RAM_4G_HD_10G', 
    'min_disk': 10, 
    'tags': [], 
    'image_location': 'snapshot', 
    'instance_type_memory_mb': '4096', 
    'disk_format': 'qcow2', 
    'os': 'nowindows', 
    'updated_at': '2015-06-26T03:58:29Z', 
    'instance_type_flavorid': '104', 
    'user_id': '616ec511929145da961f3f0cc25b12ab', 
    'base_image_ref': '4995a0e7-e460-4163-97a0-995850e3cbec', 
    'min_ram': 0, 
    'size': 6872825856, 
    'owner': 'f4467a6710f84dc33900393119a128473', 
    'instance_type_swap': '0', 
    'name': 'daily backup PROD-WBDD-1PP'
}

SWAP

{
   'links': [
          {
        'href': 'https://cloud.numergy.com:8776/v2/f4467a6710f84dc33900393119a128473/volumes/545ac441-732b-4832-955a-1986452b0822', 
            'rel': 'self'
          }, 
          {
        'href': 'https://cloud.numergy.com:8776/f4467a6710f84dc33900393119a128473/volumes/545ac441-732b-4832-955a-1986452b0822', 
        'rel': 'bookmark'
          }
            ], 
   'bootable': 'false', 
   'name': 'PROD-WBDD-1PP_SWAP', 
   'source_volid': None, 
   'availability_zone': 'IDF-01', 
   'metadata': {
        'readonly': 'False', 
        'attached_mode': 'rw'
        }, 
   'description': '', 
   'snapshot_id': None, 
   'attachments': [
             {
              'device': '/dev/vdb', 
              'id': '545ac441-732b-4832-955a-1986452b0822', 
              'volume_id': '545ac441-732b-4832-955a-1986452b0822', 
              'host_name': None, 
              'server_id': 'd83a2a6a-61f6-494a-a67b-3603d1a24291'
              }
           ], 
   'created_at': '2015-03-24T13:50:31.000000', 
   'encrypted': False, 
   'status': 'in-use', 
   'volume_type': None, 
   'size': 2, 
   'os-vol-tenant-attr:tenant_id': 'f4467a6710f84dc33900393119a128473', 
   'user_id': 'a03fd08bd81146d4b71d6874e6ba5765', 
   'id': '545ac441-732b-4832-955a-1986452b0822'
}

Home

{'links': [{'href': 'https://cloud.numergy.com:8776/v2/f4467a6710f84dc33900393119a128473/volumes/dc0f64cb-46da-45e6-8378-e76ac463ad7d', 'rel': 'self'}, {'href': 'https://cloud.numergy.com:8776/f4467a6710f84dc33900393119a128473/volumes/dc0f64cb-46da-45e6-8378-e76ac463ad7d', 'rel': 'bookmark'}], 'bootable': 'false', 'name': 'PROD-WBDD-1PP_HOME', 'source_volid': None, 'availability_zone': 'IDF-01', 'metadata': {'readonly': 'False', 'attached_mode': 'rw'}, 'description': '', 'snapshot_id': None, 'attachments': [{'device': '/dev/vdc', 'id': 'dc0f64cb-46da-45e6-8378-e76ac463ad7d', 'volume_id': 'dc0f64cb-46da-45e6-8378-e76ac463ad7d', 'host_name': None, 'server_id': 'd83a2a6a-61f6-494a-a67b-3603d1a24291'}], 'created_at': '2015-03-24T13:49:19.000000', 'encrypted': False, 'status': 'in-use', 'volume_type': None, 'size': 48, 'os-vol-tenant-attr:tenant_id': 'f4467a6710f84dc33900393119a128473', 'user_id': 'a03fd08bd81146d4b71d6874e6ba5765', 'id': 'dc0f64cb-46da-45e6-8378-e76ac463ad7d'}

dans mon code je fais ceci:

# num.images() retourne la structure " images"
# num.volumes() retourne la structure " de home et swap"
        data_images = num.images()
        data_volumes = num.volumes()
        for d_i,d_v in zip(data_images,data_volumes):
            if d_i['instance_uuid'] == d_v['attachments'][0]['server_id'] :
                print("{}".format(d_v["name"]))

j'aurai dû avoir en output :

PROD-WBDD-1PPSWAP
PROD-WBDD-1PP
HOME

mais je n'ai rien en output.

quelqu'un peut m'aider su ce coup ?

demandé 29-Jun-2015 par structure de données
edité 29-Jun-2015 par max

Pas sûr de comprendre, tu as plusieurs structures "images" ?
Si c'est ça, une implémentation naïve voudrait que tu ais 2 boucles imbriquées, une sur data_images et l'autre sur data_volumes, non ?

Je ne vois pas comment.
Un exemple ?

1 Réponse

+2 votes
 
Meilleure réponse

C'est résolu

Une boucle imbriquée était bien la bonne solution

Merci

répondu 30-Jun-2015 par anonyme
sélectionné 16-Mai-2016 par Sam

Tu peux développer ta réponse avec un bout de code pour que ça serve au(x) prochain(s).

Et éventuellement accepter ta réponse.

Merci

@max : vu que ce n'est pas un " membre ", pas sûr qu'il puisse accepter "ses" reponses, sinon il pourrait le faire pour tous les anonymes.
donc t'as plus qu'à la lui valider ;)

...