2017-05-02 8 views
0

各行に新しいjsonオブジェクトが含まれているjsonファイルを読みたいとします。複数のjsonオブジェクトが新しい行で区切られたjsonファイルを読み取る方法は?

{'P':'a1','D':'b1','T':'c1'} 
{'P':'a2','D':'b2','T':'c2'} 
{'P':'a3','D':'b3','T':'c3'} 
{'P':'a4','D':'b4','T':'c4'} 

私は以下のように、このファイルを読み込むしようとしています - -

print pd.read_json("sample.json", lines = True) 

私は例外の下に直面している - 実際にこの

ValueError: Expected object or value 

ファイルは、以下のようになります。 sample.jsonファイルは〜240MBです。このファイルの形式はこれだけです。各行には1つの新しいjsonオブジェクトが含まれており、python pandasを使用してこのファイルを読んでいます。

+2

今テストし、はい - 単一引用符ではないため、二重引用符を必要とする有効なJSON – jezrael

+0

また技術的にこのファイルの拡張子を'.jsonl'でなければなりません。 – IanS

+0

どのプログラムで "ValueError:Expected object or value"というエラーが発生しましたか? – kit

答えて

0

他の人がコメントで述べたように、実際にはJSONではありません。あなたはast.literal_eval()を使用することができます。

import pandas as pd 
import ast 

with open('sample.json') as f: 
    content = f.readlines() 

pd.DataFrame([ast.literal_eval(line) for line in content]) 

またはダブルスで単一引用符を置き換える:

import pandas as pd 
import json 

with open('sample.json') as f: 
    content = f.readlines() 

pd.DataFrame([json.loads(line.replace("'", '"')) for line in content]) 
関連する問題