python データフレームでjsonを扱うときのlines指定
jsonをデータフレーム変換するときに、ぶつかりました。
jsonファイルって複数データになるとlines指定しないととても見づらい。
なのでlines指定をすると改行されて見やすくなります。
コマンド lines指定有り
df_lines.to_json('df_lines.json',orient = 'records')
結果
{"a":1,"b":2,"c":3}
{"a":1,"b":2,"c":3}
コマンド lines指定なし
df_lines.to_json('df.json',orient = 'records',lines=True)
結果
[{"a":1,"b":2,"c":3},{"a":1,"b":2,"c":3}]
lines指定で出力したjsonファイルを読み込むところでは、
read_jsonでlines指定しないと落ちます。
ここに気付くのに時間がかかりました。
よしなには読み込んでくれないんですね。。。。
■OKパターン
import pandas as pd
import numpy as np
input_lines = '{"a":"1","b":"2","c":"3"}\n{"a":"1","b":"2","c":"3"}'
df_lines = pd.read_json(input_lines, orient='records',lines=True)
■NGパターン
import pandas as pd
import numpy as np
input_lines = '{"a":"1","b":"2","c":"3"}\n{"a":"1","b":"2","c":"3"}'
df_lines = pd.read_json(input_lines, orient='records')
インプットとするjsonがlines指定でできあがっているのであれば、read_jsonでもちゃんとlines指定しましょうって話ですね。