2013-04-16 6 views
1

Je suis dans ce genre de situation. J'ai 2 listes et deux ints, je dois les mettre tous dans un fichier JSON afin que je puisse le passer à un autre programme Python. Je voudrais que le fichier final/structure pour être quelque chose le long des lignes de:Python, écrire des choses à json

File:{ 
     numbers : [1,2,3] 
     strings : ["a", "b" , "c"] 
     x : 0 
     y : 0 
    } 

Est-il possible de le faire de manière automatisée, sans l'écrire explicitement tout comme une chaîne énorme? Je suppose qu'il utilise des dumps, mais je ne suis pas tout à fait sûr comment l'utiliser correctement et comment il va incorporer la balise de variables (c'est-à-dire nombres, chaîne) ou comment ajouter chaque ligne à une structure JSON unique.

import json 
n = [1, 2, 3] 
s = ["a", "b" , "c"] 
x = 0 
y = 0 
nums = json.dumps(n,) 
strings = json.dumps(s) 
print(nums) 

Répondre

4

tout mettre dans un dict:

json.dumps({'numbers': n, 'strings': s, 'x': x, 'y': y}) 

Résultat:

>>> json.dumps({'numbers': n, 'strings': s, 'x': x, 'y': y}) 
'{"numbers": [1, 2, 3], "y": 0, "x": 0, "strings": ["a", "b", "c"]}' 

Notez que les deux dicts objet JSON et Python n'ont pas de commande spécifique.

+0

Les clés de x et y ne devraient-elles pas être des chaînes? I.e., "x" et "y", pas "x" et "y". –

+0

@ Jon-Eric: Vous avez entièrement raison; mon erreur, corrigée. –

+0

l'ordre interne des nombres et des chaînes sera-t-il conservé? – EasilyBaffled