Je suis nouveau sur Python et je joue avec des données JSON. Je voudrais récupérer les données JSON d'un fichier et ajouter à ces données une valeur-clé JSON "à la volée".
C'est mon json_file
contient des données JSON comme suit:
{"key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
Je voudrais ajouter le "ADDED_KEY": "ADDED_VALUE"
partie clé-valeur pour les données ci-dessus afin d'utiliser le JSON suivant dans mon script:
{"ADDED_KEY": "ADDED_VALUE", "key1": {"key1A": ["value1", "value2"], "key1B": {"key1B1": "value3"}}}
J'essaie d'écrire quelque chose de semblable à ce qui suit afin d'accomplir ce qui précède:
import json
json_data = open(json_file)
json_decoded = json.load(json_data)
# What I have to make here?!
json_data.close()
Votre json_decoded
l'objet est un dictionnaire Python; vous pouvez simplement y ajouter votre clé, puis réencoder et réécrire le fichier:
import json
with open(json_file) as json_file:
json_decoded = json.load(json_file)
json_decoded['ADDED_KEY'] = 'ADDED_VALUE'
with open(json_file, 'w') as json_file:
json.dump(json_decoded, json_file)
J'ai utilisé les objets fichier ouverts comme gestionnaires de contexte ici (avec l'instruction with
) donc Python ferme automatiquement le fichier une fois terminé.
Json renvoyé par json.loads () se comporte comme des listes/dictionnaires natifs python:
import json
with open("your_json_file.txt", 'r') as f:
data = json.loads(f.read()) #data becomes a dictionary
#do things with data here
data['ADDED_KEY'] = 'ADDED_VALUE'
#and then just write the data back on the file
with open("your_json_file.txt", 'w') as f:
f.write(json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')))
#I added some options for pretty printing, play around with them!
Pour plus d'informations, consultez le document officiel
Tu peux faire
json_decoded['ADDED_KEY'] = 'ADDED_VALUE'
OR
json_decoded.update({"ADDED_KEY":"ADDED_VALUE"})
ce qui fonctionne bien si vous souhaitez ajouter plusieurs paires clé/valeur.
Bien sûr, vous voudrez peut-être d'abord vérifier l'existence de ADDED_KEY - cela dépend de vos besoins.
ET je suppose que vous voulez peut-être enregistrer ces données dans le fichier
json.dump(json_decoded, open(json_file,'w'))