J'ai la dicte suivante présentée ci-dessous qui a été créée à partir d'une demande d'obtention. Je veux être itérer à travers ce dict pour extraire tous les emails de l'utilisateur. Je ne veux pas la clé avec la valeur, juste une nouvelle liste d'adresses électroniques. Comment puis-je boucler le plus efficacement à travers une longue dicte et tirer simplement la valeur de la clé "e-mail"? J'ai essayé d'utiliser le fucntion JSON.LOAD (), mais rencontrez des problèmes avec le type de données.

{
    "users": [
        {
            "id": 1262635064750,
            "url": "https://xxxx.xxx.com/api/v2/users/1262635064xxx.json",
            "name": "Customer A",
            "email": "customerA@example.com",
            "created_at": "2021-03-05T22:05:12Z",
            "updated_at": "2021-03-05T22:05:15Z",
            "time_zone": "America/Chicago",
            "iana_time_zone": "America/Chicago",
            "phone": null,
            "shared_phone_number": null
         }
 {
            "id": 1262635064751,
            "url": "https://xxxx.xxx.com/api/v2/users/1262635064xxx.json",
            "name": "Customer B",
            "email": "customerB@example.com",
            "created_at": "2021-03-05T22:05:12Z",
            "updated_at": "2021-03-05T22:05:15Z",
            "time_zone": "America/Chicago",
            "iana_time_zone": "America/Chicago",
            "phone": null,
            "shared_phone_number": null
         }
 {
            "id": 1262635064752A,
            "url": "https://xxxx.xxx.com/api/v2/users/1262635064xxx.json",
            "name": "Customer C",
            "email": "customerC@example.com",
            "created_at": "2021-03-05T22:05:12Z",
            "updated_at": "2021-03-05T22:05:15Z",
            "time_zone": "America/Chicago",
            "iana_time_zone": "America/Chicago",
            "phone": null,
            "shared_phone_number": null
         }
-3
odonnry 3 juin 2021 à 00:32

1 réponse

Meilleure réponse

Utilisez une compréhension de liste:

emails = [user["email"] for user in response["users"]]

Cela suppose que votre dictionnaire de haut niveau est stocké comme une variable nommée response. Alors response["users"] est une liste de dictionnaires. Cette liste comprend la compréhension de cette liste, attribuant chaque dictionnaire utilisateur à user et accédant à sa valeur pour la touche "email".

3
Andrew Eckart 2 juin 2021 à 21:35