Mam duży plik json. Jego dane dziennika i skompresowałem je do formatu bz2 (myfile.json.bz2). Rozmiar pliku bz2 wynosi 90 MB. Szukałem dobrego rozwiązania lub posta na blogu, który wyjaśniłby efektywne analizowanie skompresowanego pliku bz2 json, ale nie był w stanie go znaleźć.
Ponieważ plik jest duży, wykonanie czegoś takiego jest niemożliwe.
with open("data.json") as data_file:
data = json.load(data_file)
jakie jest najlepsze podejście?
Po kilku kopaniu znalazłem pakiet python do odczytu bz2
input_file = bz2.BZ2File(filename, "r")
Odpowiedzi:
1 dla odpowiedzi № 1W przypadku braku innych sugestii lub istniejącego kodu polecam otwarcie strumienia i ręczne analizowanie nawiasów klamrowych i nawiasów ({
i [
odpowiednio), dopóki nie masz kompletnego obiektu { ... }
i uruchom w tym celu deserializację. Umożliwi to porcjowanie JSON przy jednoczesnym wykorzystaniu istniejących bibliotek JSON.
Nie jest to rozwiązanie, które zazwyczaj polecam, ale jest to najszybsze i najbardziej niezawodne rozwiązanie, jakie mogę wymyślić, jeśli istniejące biblioteki nie odpowiadają twoim potrzebom.