objectif
Traiter de gros flux JSONL ligne à ligne sans tout charger.
code minimal
import json, io
buf = io.StringIO()
for obj in [{"a":1}, {"b":2}]:
buf.write(json.dumps(obj, separators=(",", ":")) + "\n")
buf.seek(0)
vals = [json.loads(line)["a"] if "a" in line else None for line in buf]
print(vals[0] == 1) # attendu: True
utilisation
import json, io
buf = io.StringIO('{"x":1}\n{"y":2}\n')
objs = [json.loads(line) for line in buf if line.strip()]
print(len(objs) == 2)
variante(s) utile(s)
import json
print(callable(json.dumps) and callable(json.loads))
notes
- Utilisez separators=(”,”, ”:”) pour minimiser la taille.
- Validez chaque objet individuellement pour la robustesse.