2013-05-02 3 views
4

J'ai besoin de générer un fichier JSON comme:Comment générer un fichier JSON en python de tableau imbriqué/dictionnaire/objet

{ 
    "age":100, 
    "name":"mkyong.com", 
    "messages":["msg 1","msg 2","msg 3"] 
} 

Les données contenues dans ce fichier doivent être remplis de divers endroits. Quelle est la meilleure façon de le faire en python? Je peux toujours écrire en tant que fichier texte (caractère par caractère). Mais je me demandais s'il existait un moyen plus simple de créer un tableau et d'utiliser des méthodes de bibliothèque pour générer ce fichier json. Veuillez suggérer une bonne solution

PS. Je suis nouveau à python

+0

Utilisez les touches [bibliothèque JSON] builtin (http: //docs.python. org/3/library/json.html) sur votre objet ... – JBernardo

+0

Mais mon entrée n'est pas une chaîne json – devnull

+0

Que voulez-vous alors? Vous voulez l'indentation? Vous voulez charger des données json? Pour tous ceux-là, utilisez la bibliothèque json intégrée que j'ai écrite ci-dessus – JBernardo

Répondre

7

Vous pouvez utiliser json.dumps() pour cela. Vous pouvez lui passer un dictionnaire et la fonction l'encodera en json.

Exemple:

import json 

# example dictionary that contains data like you want to have in json 
dic={'age': 100, 'name': 'mkyong.com', 'messages': ['msg 1', 'msg 2', 'msg 3']} 

# get json string from that dictionary 
json=json.dumps(dic) 
print json 

Sortie:

{"age": 100, "name": "mkyong.com", "messages": ["msg 1", "msg 2", "msg 3"]} 
0

Essayez ceci ...

import json 
with open('data.json', 'w') as outfile: 
    json.dump({ 
    "age":100, 
    "name":"mkyong.com", 
    "messages":["msg 1","msg 2","msg 3"] 
    }, outfile)