Ich habe ungefähr 2000 JSON-Dateien, die ich versuche, durch ein Python-Programm zu laufen. Ein Problem tritt auf, wenn eine JSON-Datei nicht im richtigen Format vorliegt. (Fehler: ValueError: No JSON object could be decoded
) Ich kann es wiederum nicht in mein Programm einlesen.Python: validiere und formatiere JSON-Dateien
ich momentan tue so etwas wie die folgenden:
for files in folder:
with open(files) as f:
data = json.load(f); # It causes an error at this part
Ich weiß offline Methoden gibt es zur Validierung und Formatierung von JSON-Dateien aber gibt es eine programmatische Möglichkeit, diese Dateien zu überprüfen und zu formatieren? Wenn nicht, gibt es eine kostenlose/billige Alternative, um alle diese Dateien offline zu reparieren, d. H. Ich führe das Programm einfach in dem Ordner mit allen JSON-Dateien aus und formatiere sie nach Bedarf?
GELöST @ Reece Kommentar mit:
invalid_json_files = []
read_json_files = []
def parse():
for files in os.listdir(os.getcwd()):
with open(files) as json_file:
try:
simplejson.load(json_file)
read_json_files.append(files)
except ValueError, e:
print ("JSON object issue: %s") % e
invalid_json_files.append(files)
print invalid_json_files, len(read_json_files)
aus Turns, dass ich eine Datei spare, die nicht im JSON-Format in meinem Arbeitsverzeichnis, die der gleiche Ort, wo ich war, von Lese von Daten. Danke für die hilfreichen Vorschläge.
Und wie planen Sie, diese Dateien zu reparieren, wenn Sie nicht wissen, wo genau der Fehler ist? – vaultah
Was ist nicht gut formatiert? Sie erkennen, dass Sie das Datenobjekt für jede Datei überschreiben, oder? – Llopis
@frostnational Ich hatte den Eindruck, dass ein Programm einige Probleme durchgehen würde, die in JSON-Dateien auftreten können, und diese automatisch beheben, wenn sie auftreten. Z.B. '{text:" foo "} text2:" bar "' -> kein Komma trennt die beiden Dicts. @Llopis: Ja, ich möchte, dass das Programm für jede JSON-Datei funktioniert. Vielleicht gut formatiert könnte eine Spalte zwischen Dicts fehlen. – Black