Chargement d'un fichier JSON avec python 2.7
TitiToto
-
dsy73 Messages postés 9917 Statut Contributeur -
dsy73 Messages postés 9917 Statut Contributeur -
Bonjour,
Voilà mon fichier JSON.Je veux charger les listes appelées data; une par une; les unes après les autres.
Il s'agit d'un exemple. Mon vrai fichier fait 500Mo, et lorsque je le charge j'ai un "memory error".
Voilà ce que j'ai essayé:
Mais ça ne marche pas!
Est-ce que quelqu'un a un script à proposer (peut-être en utilisant ijson ou ujson). A noté que j'ai essayé en chargeant simplement avec json.load, mais que la taille du fichier fait planter python 2.7...
Merci d'avance!
Voilà mon fichier JSON.Je veux charger les listes appelées data; une par une; les unes après les autres.
Il s'agit d'un exemple. Mon vrai fichier fait 500Mo, et lorsque je le charge j'ai un "memory error".
{
"earth": {
"europe": [
{"name": "Paris", "type": "city"},
{"name": "Thames", "type": "river"},
{"par": 2, "data": [1,7,4,7,5,7,7,6]},
{"par": 2, "data": [1,0,4,1,5,1,1,1]},
{"par": 2, "data": [1,0,0,0,5,0,0,0]}
],
"america": [
{"name": "Texas", "type": "state"}
]
}
}
Voilà ce que j'ai essayé:
import ijson
filename = "testfile.json"
f = open(filename)
mylist = ijson.items(f, 'earth.europe[2].data.item')
print mylist
Mais ça ne marche pas!
Est-ce que quelqu'un a un script à proposer (peut-être en utilisant ijson ou ujson). A noté que j'ai essayé en chargeant simplement avec json.load, mais que la taille du fichier fait planter python 2.7...
Merci d'avance!
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Chargement d'un fichier JSON avec python 2.7
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
1 réponse
Salut
il te faudrait une méthode qui évite de charger tout le JSON en mémoire. Par exemple :
https://github.com/henu/bigjson
https://github.com/kashifrazzaqui/json-streamer
il te faudrait une méthode qui évite de charger tout le JSON en mémoire. Par exemple :
https://github.com/henu/bigjson
https://github.com/kashifrazzaqui/json-streamer