0
votes

Remplacez la chaîne dans la chaîne JSON avec une variable

Un fichier JSON est chargé avec: xxx pré>

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"'))


0 commentaires

4 Réponses :


0
votes
d = json.loads(json.dumps(data).replace(f"{key1}", "Automat"))

0 commentaires

0
votes

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))


0 commentaires

0
votes

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  


1 commentaires

Merci, mais cela ne fonctionne pas avec des structures de JSON imbriquées complexes ...



0
votes

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)


0 commentaires