192 votes

Impression de données JSON dans un fichier à l'aide de Python

Un projet de classe consiste à analyser les données JSON de Twitter. J'obtiens les données et les place dans le fichier sans trop de problèmes, mais tout est sur une seule ligne. C'est bien pour la manipulation des données que j'essaie de faire, mais le fichier est ridiculement difficile à lire et je ne peux pas l'examiner très bien, ce qui rend l'écriture du code pour la partie manipulation des données très difficile.

Quelqu'un sait-il comment faire cela à partir de Python (c'est-à-dire sans utiliser l'outil de ligne de commande, que je n'arrive pas à faire fonctionner) ? Voici mon code jusqu'à présent :

header, output = client.request(twitterRequest, method="GET", body=None,
                            headers=None, force_auth_header=True)

# now write output to a file
twitterDataFile = open("twitterData.json", "wb")
# magic happens here to make it pretty-printed
twitterDataFile.write(output)
twitterDataFile.close()

Note J'apprécie que l'on m'indique la documentation de Simplejson et autres, mais comme je l'ai dit, je l'ai déjà examinée et j'ai toujours besoin d'aide. Une réponse vraiment utile sera plus détaillée et explicative que les exemples trouvés ici. Merci

Aussi : J'essaie ceci dans la ligne de commande de Windows :

more twitterData.json | python -mjson.tool > twitterData-pretty.json

résulte en ceci :

Invalid control character at: line 1 column 65535 (char 65535)

Je vous donnerais bien les données que j'utilise, mais elles sont très volumineuses et vous avez déjà vu le code que j'ai utilisé pour créer le fichier.

4voto

locke14 Points 63

Si vous avez déjà des fichiers JSON existants que vous souhaitez mettre en forme, vous pouvez utiliser cette méthode :

    with open('twitterdata.json', 'r+') as f:
        data = json.load(f)
        f.seek(0)
        json.dump(data, f, indent=4)
        f.truncate()

3voto

Peter Points 124
import json
def writeToFile(logData, fileName, openOption="w"):
  file = open(fileName, openOption)
  file.write(json.dumps(json.loads(logData), indent=4)) 
  file.close()

-1voto

Ramya Points 11

Vous pourriez rediriger un fichier vers python et l'ouvrir à l'aide de l'outil et pour le lire utiliser plus.

L'exemple de code sera,

cat filename.json | python -m json.tool | more

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X