0
votes

Modification des clés de dictionnaire Python dans des structures imbriquées

J'ai la structure suivante à éditer, et je ne sais pas comment le faire. Par exemple. J'ai besoin de renommer "e-mail" dans "courriels" et je n'ai que l'adresse e-mail de la valeur.

{'input_text': 'some text',
 'lang': 'eng',
 'response': {'Certification': [{'CertificationName': 'some_name'}],
  'emails': ['someaddress@gmail.com'],
  'ExecutiveSummary': ' text',
  'FamilyName': 'Smith',
  'FormattedName': 'John',
  'GivenName': 'John'}


0 commentaires

4 Réponses :


1
votes

Je ne renommerais pas une clé, mais vous pouvez simplement créer des "courriels", puis le peupler: xxx

modifier: et @ H4Z3 avait mentionné, vous pouvez supprimer en utilisant del ou si vous devez obtenir la valeur tandis que la suppression de celle-ci pop xxx


1 commentaires

Et alors juste juste del test_dict ['réponse'] ['email'] et la chose ressemble à OP veut. :)



3
votes

si d est votre dict, puis essayez ceci: xxx

ou vous pouvez le faire en utilisant pop dans une seule ligne: < / p> xxx

Cela vous donnera: xxx


4 commentaires

Merci, fonctionne comme prévu! Je n'ai pas mentionné une autre partie dans ma question, alors je vais demander dans les commentaires à la place - comment voudriez-vous le faire boucler via un gros fichier JSON? Cela fonctionne pour un élément, mais lorsque je postule à l'ensemble du document, les indices de la liste des erreurs doivent être des entiers ou des tranches, pas STR '


@alinaz votre accueil. Vous voulez dire comment vous pouvez charger un gros fichier dans le script Python?


@alinaz j'ai trouvé ce lien utile pour vous. Voir ceci, vous trouverez une réponse. Stackoverflow.com/Questtions/10382253 / ...


Et ce repo vous aidera à sortir. Github.com/henu/bigjson



0
votes

Si vous savez qu'il n'y aura que 'email' : xxx


0 commentaires

0
votes

Vous pouvez faire une nouvelle clé emails code> et après cela supprimer l'ancien:

>>> my_dict = {
...     'input_text': 'some text',
...     'lang': 'eng',
...     'response': {
...         'Certification': [
...             {
...                 'CertificationName': 'some_name'
...             }
...         ],
...         'Email': [
...             {
...                 'Address': 'someaddress@gmail.com', 
...                 'Label': 'personal'
...             }
...         ],
...         'ExecutiveSummary': ' text',
...         'FamilyName': 'Smith',
...         'FormattedName': 'John',
...         'GivenName': 'John'
...     }
... }
>>> my_dict['response']['emails'] = [d['Address'] for d in my_dict['response']['Email']]
>>> my_dict['response'].pop('Email', None)
>>> print(my_dict)
    {
...     'input_text': 'some text',
...     'lang': 'eng',
...     'response': {
...         'Certification': [
...             {
...                 'CertificationName': 'some_name'
...             }
...         ],
...         'ExecutiveSummary': ' text',
...         'FamilyName': 'Smith',
...         'FormattedName': 'John',
...         'GivenName': 'John',
...         'emails': ['someaddress@gmail.com']
...     }
... }


0 commentaires