Ich habe eine ziemlich große JSON-Datei von Protokolldaten, die ich versuche, in XLS oder CSV zu konvertieren. Etwas in dem Prozess nimmt nur die ersten 1000 Reihen, und ich kann nicht herausfinden, was dies verursachen könnte.Pandas Dataframe falsche Anzahl von Zeilen
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()
Der leicht hygienisiert json-Extrakt ist unten, aber es genügt ich nur interestd im Ergebnis zu sagen bin, wie die Nutzlast für Nachrichten im Allgemeinen leer ist.
{"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}
Der Versuch, in Pandas nativ importieren nicht direkt mit dem Fehler: ‚Valueerror: dicts mit nicht-Series Mixing zu zweideutig Ordnung führen kann.‘
Letztlich ist dies ein Skript, das ich will nur bei einem Webservice auf einem entferntes System zeigen und eine Stunde im Wert von Protokollen einmal extrahieren oder zweimal am Tag