Lecture de fichiers JSON volumineux
Le chargement de gros fichiers JSON dans Python peut poser des problèmes de mémoire en raison du comportement par défaut des décodeurs JSON. Ces décodeurs chargent généralement l'intégralité du fichier en mémoire, ce qui entraîne des MemoryErrors pour les fichiers volumineux.
La clé pour résoudre ce problème réside dans l'utilisation d'une approche de streaming plutôt que de charger l'intégralité du fichier en une seule fois. Cela implique la lecture et le traitement des données en petits morceaux.
Solution : JSON Streaming
Une solution efficace consiste à mettre en œuvre l'approche de streaming avec le module ijson. Ijson traite JSON comme un flux, permettant un traitement itératif des données sans conserver l'intégralité du fichier en mémoire.
Exemple de code
<code class="python">from ijson import items with open('file.json', 'r') as f: for event, value in items(f): # Process the current event and value pass</code>
Dans cet exemple, le Le module ijson parcourt les données JSON, fournissant des événements et des valeurs à traiter. Cela évite de charger l'intégralité du fichier en mémoire, résolvant ainsi l'erreur de mémoire initiale.
Solutions alternatives
D'autres solutions notables incluent :
En tirant parti des techniques de streaming, vous pouvez charger et gérer efficacement des fichiers JSON volumineux sans rencontrer de contraintes de mémoire.
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!