Un fichier JSON est chargé avec: maintenant je remplace la touche "22981" par "Automat" dans la chaîne JSON: P> d = json.loads(json.dumps(data).replace('"{0}"'.format(key1), '"Automat"'))
4 Réponses :
d = json.loads(json.dumps(data).replace(f"{key1}", "Automat"))
Le code ci-dessous remplacera la touche "22981" avec "Automat":
import json
outfile = open('outfile.json', 'w')
with open("samples.json", "r") as read_file:
for data in read_file: #To iterate on multiple records in the file(here data is one json record),
data = json.loads(data)
data["Automat"] = data.pop('22981', '')
outfile.write(json.dumps(data))
Vous pouvez également le faire avec Python
with open("samples.json", "r") as read_file:
data = json.load(read_file)
key="something"
if data.get(key,None):
val=data.pop(key)
data['Automat']=val
Merci, mais cela ne fonctionne pas avec des structures de JSON imbriquées complexes ...
J'ai résolu le problème avec une solution de contournement. J'ai fait le remplacement avant le JSON.LOADS
import json
import csv
with open("sensors.json", "r") as read_file:
sensors = json.load(read_file)
with open ("samples.json", "r") as myfile:
data=myfile.read()
for key1 in sensors:
data = data.replace(key1, sensors[key1]['name'])
data = json.loads(data)