Python >> Tutoriel Python >  >> Python Tag >> JSON

Traversée et accès aux éléments internes dans JSON

Pour moi, il semble que vous ayez une chaîne JSON imbriquée ici. Et le JSON interne n'est pas valide. Nous devons donc le corriger avant l'analyse.

import json
with open("new1.json") as json_file:
   data = json.load(json_file)
innerstr = data["j1"][0]["Data"]
innerstr = innerstr.replace("values",'"walues"').replace("time",'"time"').replace("val",'"val"').replace("walues","values")
inner = json.loads(innerstr)
#then we can modify inner data as we want
inner["dump"][0]["values"][0]["name"] = "ABC"
inner["dump"][0]["values"][1]["name"] = "CBA"

Et maintenant nous avons inner variable comme celle-ci

{'dump': [{'values': [{'name': 'ABC', 'time': 1586826385724, 'val': 5.12},
                      {'name': 'CBA', 'time': 1587576460460, 'val': 3.312}]}]}

C'est un JSON détendu format. Il existe un analyseur JSON décontracté pour Python.Voici l'exemple :

>>> import relaxedjson
>>> relaxedjson.parse('{moose: "goose"}')
{'moose': 'goose'}