Maison >développement back-end >Tutoriel Python >Comment charger efficacement des fichiers JSON volumineux sans surcharger la mémoire système ?
Chargement efficace et rapide de fichiers JSON volumineux
Le chargement de fichiers JSON volumineux peut souvent solliciter les ressources de la mémoire système lors de l'utilisation du simple json.load( ) méthode. Ce problème provient de la nécessité de charger simultanément l'intégralité du contenu du fichier en mémoire.
Une solution potentielle consiste à exploiter des techniques de chargement partiel de fichiers. Dans le cas de fichiers texte délimités par des lignes, on peut parcourir les lignes. Existe-t-il une approche analogue pour les fichiers JSON ?
ijson : un analyseur de type SAX pour JSON
Une solution à ce problème se trouve dans la bibliothèque ijson. Cette bibliothèque offre une approche d'analyse de type SAX, similaire à la façon dont la bibliothèque SAX gère XML. Ce qui suit présente un exemple d'utilisation :
<code class="python">import ijson for prefix, the_type, value in ijson.parse(open(json_file_name)): print(prefix, the_type, value)</code>
Dans ce code, le préfixe représente l'index séparé par des points dans l'arborescence JSON, the_type spécifie un type d'événement de style SAX (par exemple, début/fin d'une carte/d'un tableau , null, string, etc.), et value est la valeur de l'objet ou None si the_type est un événement.
Limitations et astuces
Notez qu'ijson assume les noms de clés ne contiennent pas de points. De plus, sa documentation est quelque peu limitée. Il est recommandé d'explorer le code source pour mieux comprendre ses fonctionnalités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!