/ / पायथन: पार्स बड़ी जेसन फ़ाइल - पायथन, जेसन

पायथन: पार्स बड़ी जेसन फ़ाइल - पायथन, जेसन

मेरे पास एक बड़ी जेसन फ़ाइल है। इसका लॉग डेटा और मैंने इसे bz2 प्रारूप (myfile.json.bz2) पर संपीड़ित किया है। Bz2 फ़ाइल का आकार 90 एमबी है। मैंने एक अच्छा समाधान या ब्लॉग पोस्ट खोजने की खोज की जो संकुचित बीजे 2 जेसन फ़ाइल को कुशलतापूर्वक पार्सिंग की व्याख्या करता है लेकिन किसी को भी ढूंढने में सक्षम नहीं था।

चूंकि फ़ाइल बड़ी है ऐसा कुछ करना असंभव है।

with open("data.json") as data_file:
data = json.load(data_file)

सबसे अच्छा तरीका क्या है?

कुछ खोदने के बाद मुझे पता चला कि bz2 पढ़ने के लिए एक अजगर पैकेज है

input_file = bz2.BZ2File(filename, "r")

उत्तर:

उत्तर № 1 के लिए 1

किसी भी अन्य सुझाव या मौजूदा कोड की अनुपस्थिति में मैं एक स्ट्रीम खोलने और ब्रेसिज़ और ब्रैकेट को मैन्युअल रूप से पार्स करने की सिफारिश करता हूं ({ तथा [ क्रमशः) जब तक आप एक पूर्ण वस्तु नहीं है { ... } और उस पर deserialization चलाओ। यह मौजूदा JSON पुस्तकालयों का लाभ उठाने के दौरान JSON को खंडित करने की अनुमति देगा।

यह एक ऐसा समाधान नहीं है जिसे मैं आम तौर पर अनुशंसा करता हूं लेकिन यह सबसे तेज़ और सबसे विश्वसनीय समाधान है जो मैं सोच सकता हूं कि मौजूदा पुस्तकालय आपकी आवश्यकताओं के अनुरूप नहीं हैं।