上流SEが久しぶりに開発してみる日記

マネジメント専任システムエンジニアがなれないプログラミングをしてみる日記です。

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指定しましょうって話ですね。