web-dev-qa-db-fra.com

Jolie impression JSON python

si quelqu'un ayant des connaissances sur la jolie impression JSON pouvait m'aider, je vous serais extrêmement reconnaissant!

Je cherche à convertir une chaîne complexe python au format JSON, en utilisant la fonction ci-dessous pour déplacer la chaîne JSON dans un fichier:

with open('data.txt', 'wt') as out:
    pprint(string, stream=out)

Le problème est que je reçois des erreurs de syntaxe pour les crochets je crois, car c'est un nouveau sujet pour moi et je ne peux pas comprendre comment contourner cela. Le format JSON dont j'ai besoin est le suivant:

  {
        cols:[{id: 'Time', "label":"Time","type": "datetime"},
              {id: 'Time', "label":"Latency","type":"number"}],
        rows:[{c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}, 
              {c: [{v: %s}, {v: %s}]},
              {c: [{v: %s}, {v: %s}]}
              ]
    }

Je suis en train de suivre l'API de visualisation Google, vous la connaissez peut-être, mais j'ai besoin de graphiques dynamiques. Le code ci-dessus est le format dont l'API a besoin pour créer un graphique, donc je suis en train de comprendre comment obtenir mes données de MYSQL dans ce format, afin que le graphique puisse être lu et affiché. La méthode à laquelle j'ai pensé était de mettre à jour périodiquement un fichier contenant le format JSON requis, c'est pourquoi les% s sont présents, mais MartijnPeters suggère que ce n'est pas valide.

Quelqu'un connaît-il la manière la plus simple de le faire, ou pouvez-vous m'indiquer tout matériel qui peut aider? Je vous remercie!!

13
Tom O' Mara

Vous écrivez des représentations Python , pas JSON.

Utilisez la fonction json.dump() pour écrire du JSON plutôt imprimé, directement dans votre fichier:

with open('data.txt', 'wt') as out:
    res = json.dump(obj, out, sort_keys=True, indent=4, separators=(',', ': '))
46
Martijn Pieters