2016-07-13 25 views
1

XLSまたはCSVに変換しようとしているログデータのかなり大きなjsonファイルがあります。 プロセスの何かが最初の1000行しか取っていないので、何が原因か分かりません。パンダのデータフレームの行数が正しくありません

import json 
import pprint 
import pandas as pd 
from pandas.io.json import json_normalize 

f = open('GetLog.json', 'r') 
writer = pd.ExcelWriter('output.xlsx') 
payload = json.load(f) 
df = json_normalize(payload, 'Result') 
f.close() 

pprint.pprint(df) 
df.to_excel(writer,'Log Output') 
writer.save() 
writer.close() 

少し消毒JSON抽出物は以下の通りですが、メッセージのペイロードは、一般的に空であるように私は、その結果にのみinterestdだと言うには十分。ネイティブパンダにインポートしようとすると

{"Log":{"Messages":[]},"Result":[{"logdate":"/Date(1468270785461)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.461"},{"logdate":"/Date(1468270785430)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.430"},{"logdate":"/Date(1468270785398)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.398"},{"logdate":"/Date(1468270785367)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.367"},{"logdate":"/Date(1468270785336)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.336"},{"logdate":"/Date(1468270785227)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.227"},{"logdate":"/Date(1468270785196)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.196"},{"logdate":"/Date(1468270785164)/","message":"ErrorText","logtype":0,"module":"WatchFolder","logdateStr":"2016/07/12 06:59:45.164"}],"success":true,"TotalCount":5648}

は、直接のエラーで失敗します。「とValueErrorを:非シリーズでdictsを混合はあいまいな発注につながる可能性があります。」

最終的に、これは私はちょうど一日

答えて

0

をリモートシステム上のWebサービスを指して、一度か二度、ログの時間の価値を抽出したいスクリプトがそれを働いている - JSONを読み込むためにijsonを使用して終了ファイルと私が望む結果の値のみ。 例のコードはここにある:

import csv 
import ijson 
import pprint 
import pandas as pd 

from pandas.io.json import json_normalize 

#print flattenjson(x) 
#pprint.pprint 
f = open('GetLog.json', 'r') 
writer = pd.ExcelWriter('output.xlsx') 
df = pd.DataFrame() 

for item in ijson.items(f, 'Result'): 
    df1 = pd.DataFrame(item) 
    if df.empty: 
     df = df1 
    else: 
     df.append(df1, ignore_index=True) 
f.close() 

df.to_excel(writer,'Log Output') 
writer.save() 
writer.close() 

ライブバージョンは、日付範囲を指定するには、いくつかのパラメータを使用してサーバーからJSONを取得します。

関連する問題