-1
votes

Comment extraire des valeurs de la liste et rangez-la sous forme de dictionnaire (paire de clés)?

J'ai besoin d'extraire 2 valeurs de cette liste de dictionnaire et de le stocker comme une paire de valeur de clé. Ici, j'ai attaché des données d'échantillons..outes j'ai besoin d'extraire "Nom" et "Service" de cette entrée et de la stocker en tant que dictionnaire. Où "nom" est clé et correspondant "service" est sa valeur.

entrée: strong> p> xxx pré>

de cette entrée, j'ai besoin de sortie Un type de dictionnaire. P>

Format de sortie: strong> {nom: Service} p>

sortie: strong> p>

Role_name =[]
response = {#INPUT WHICH I SPECIFIED ABOVE#}
roles = response['Roles']
for role in roles:
    Role_name.append(role['Name'])
print(Role_name)


5 commentaires

On dirait que la réponse ci-dessus n'est pas un python valide .


Où est "john" dans les données? Je ne peux pas le voir nulle part.


Et si la liste de «déclaration» a de nombreuses entrées? Devrions-nous coupler le nom avec la liste des services?


C'est valide. J'ai renommé les données à des fins de confidentialité. La structure des données d'entrée est un dictionnaire Python valide.


@Pepperchill the ) le rend invalide cependant. Je ne sais pas si cela était destiné.


4 Réponses :


0
votes

Vous devez juste faire comme ceci:

liste = []
for role in response['Roles']:
    liste.append(
            {
                role['Name']:role['PolicyDocument']['Statement'][0]['RoleType']['Service'],
            }
            )
print(liste)


0 commentaires

0
votes

Il semble que vos données d'entrée soient structurées type d'étrange et je ne suis pas sûr de ce que le ) code> est en train de faire à côté des mois, car ils sont invalides mais voici un script de travail en supposant que vous avez supprimé la parenthèse de votre entrée.

response = {
    'Roles': [
        {
            'Path': '/',
            'Name': 'Heera',
            'Age': '25',
            'Policy': 'Policy1',
            'Start_Month': 'January',
'PolicyDocument':
{
    'Date': '2012-10-17',
    'Statement': [
        {
            'id': '',
            'RoleStatus': 'New_Joinee',
            'RoleType': {
                'Service': 'Service1'
            },
            'Action': ''
        }
    ]
},
'Duration': 3600
},
{
    'Path': '/',
    'Name': 'Prem',
    'Age': '40',
    'Policy': 'Policy2',
    'Start_Month': 'April',
'PolicyDocument':
{
    'Date': '2018-11-27',
    'Statement': [
        {
            'id': '',
            'RoleStatus': 'Senior',
            'RoleType': {
                'Service': ''
            },
            'Action': ''
        }
    ]
},
'Duration': 2600
},

]
}

output = {}

for i in response['Roles']:
    output[i['Name']] = i['PolicyDocument']['Statement'][0]['RoleType']['Service']

print(output)


0 commentaires

0
votes

Il vous suffit d'écrire une longue ligne qui peut atteindre jusqu'à la clé "Service". Et vous une erreur de syntaxe en ligne start_month ':' Janvier ') et ' start_month ':' Avril ') . Vous ne pouvez pas avoir une borne des crochets non extérieurs. Fixez-le et exécutez ce qui suit.

Ceci est le code: xxx

sortie: xxx


0 commentaires

0
votes

Cela devrait vous donner ce que vous voulez dans une variable appelée rôle_services: xxx

Cela garantira que vous allez passer par toutes les instructions de cette structure de données, mais soyez au courant que vous écrasez. paires de la valeur de clé Lorsque vous parcourez la réponse, si elles existent dans plus d'une seule entrée!

Une référence sur les boucles qui pourrait être utile, illustre à l'aide de si des instructions qui peuvent vous aider à l'étendre pour vérifier si des éléments existent déjà!

Espère que cela aide


0 commentaires