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'}
4 Réponses :
Je ne renommerais pas une clé, mais vous pouvez simplement créer des "courriels", puis le peupler: modifier: et @ H4Z3 avait mentionné, vous pouvez supprimer en utilisant del code> ou si vous devez obtenir la valeur tandis que la suppression de celle-ci
pop code> p>
Et alors juste juste del test_dict ['réponse'] ['email'] code> et la chose ressemble à OP veut. :)
si ou vous pouvez le faire en utilisant Cela vous donnera: p> d code> est votre dict, puis essayez ceci:
pop code> dans une seule ligne: < / p>
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
Si vous savez qu'il n'y aura que 'email' code>:
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']
... }
... }