← retour aux snippets

pandas: read_json lines

Lire un NDJSON (JSON par ligne) efficacement.

python pandas #pandas#json#ndjson

objectif

Lire un NDJSON (JSON par ligne) efficacement.

code minimal

import pandas as pd, json, io

buf = io.StringIO("\n".join(json.dumps({"id":i}) for i in range(3)))
df = pd.read_json(buf, lines=True)
print(df.to_dict(orient="list"))

utilisation

import pandas as pd
import io, json

rows = [json.dumps({"x":i,"y":i*i}) for i in range(5)]
df = pd.read_json(io.StringIO("\n".join(rows)), lines=True)
print(df["y"].sum())

variante(s) utile(s)

import pandas as pd
print(pd.read_json('[{"a":1},{"a":2}]').shape)

notes

  • lines=True pour NDJSON; chunksize pour streaming.