Ich versuche, eine JSON-Datei in Python zu laden und zu analysieren . Aber ich bin festgefahren, um die Datei zu laden:
import json
json_data = open('file')
data = json.load(json_data)
Ausbeuten:
ValueError: Extra data: line 2 column 1 - line 225116 column 1 (char 232 - 160128774)
Ich habe mir 18.2 angesehen. json
- JSON-Codierer und -Decodierer in der Python-Dokumentation, aber es ist ziemlich entmutigend, diese schrecklich aussehende Dokumentation durchzulesen.
Erste Zeilen (anonymisiert mit zufälligen Einträgen):
{"votes": {"funny": 2, "useful": 5, "cool": 1}, "user_id": "harveydennis", "name": "Jasmine Graham", "url": "http://example.org/user_details?userid=harveydennis", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 1, "useful": 2, "cool": 4}, "user_id": "njohnson", "name": "Zachary Ballard", "url": "https://www.example.com/user_details?userid=njohnson", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 1, "useful": 0, "cool": 4}, "user_id": "david06", "name": "Jonathan George", "url": "https://example.com/user_details?userid=david06", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 6, "useful": 5, "cool": 0}, "user_id": "santiagoerika", "name": "Amanda Taylor", "url": "https://www.example.com/user_details?userid=santiagoerika", "average_stars": 3.5, "review_count": 12, "type": "user"}
{"votes": {"funny": 1, "useful": 8, "cool": 2}, "user_id": "rodriguezdennis", "name": "Jennifer Roach", "url": "http://www.example.com/user_details?userid=rodriguezdennis", "average_stars": 3.5, "review_count": 12, "type": "user"}
data = json.loads(line); print data[u'votes']
Für diejenigen, die über diese Frage stolpern: Die Python-
jsonlines
Bibliothek (viel jünger als diese Frage) behandelt Dateien elegant mit einem JSON-Dokument pro Zeile. siehe https://jsonlines.readthedocs.io/quelle
Das ist schlecht formatiert. Sie haben ein JSON-Objekt pro Zeile, diese sind jedoch nicht in einer größeren Datenstruktur (dh einem Array) enthalten. Sie müssen es entweder neu formatieren, sodass es mit einem Komma am Ende jeder Zeile beginnt
[
und]
mit einem Komma endet , oder es zeilenweise als separate Wörterbücher analysieren.quelle