جست و جو یک فیلد خاص در تعداد زیادی فایل json حجیم

سناریو از این قرار هست که چندین فایل حجیم json بهمون میدن و قراره تک تک این فایل ها رو با ز کنیم، سطر به سطر جدا کنیم (هر سطر یه ابجکت json) و بیایم یه فیلد خاص رو بررسی کنیم که کلمه مورد نظر ما داخلش هست یا نه

برای اینکار اول از همه باید بیام فایل های json رو لیست کنم:

import os
PATH = &quot/home/my_jsons&quot
with os.scandir(PATH) as entries: 
    for entry in entries:
        pass

این روش مدرنی هست که از پایتون ۳.۵ معرفی شده (PEP 471)

برای باز کردن هر فایل و خوندن خط به خط اونها از این روش استفاده کردم:

with open(entry, 'r') as read_file:
    for index, line in enumerate(read_file):
        data_dict = json.loads(line)
        fild_1 = data_dict[&quotfild_1&quot]
        if KEY_WORD in link:
            pass

حالا اینجا یه تابع readrows داریم که اگه استفاده میکردم میخواست تمام سطر هارو همون لحظه به لیست تبدیل کنه و باعث انفجار از ناحیه رم می شدیم!

اما اگه بیایم سطر به سطر بررسی رو جلو ببریم باعث میشه این مشکل کمی هندل بشه

مرحله آخر ذخیره نتایج هست:

with open('res.csv', 'w') as result_file:
    writer = csv.writer(result_file)
    writer.writerow([&quotcounter&quot, &quotfild_1&quot, &quotentry.name&quot, &quotindex&quot])
    writer.writerow([counter, fild_1, entry.name, index])

نتیجه نهایی روی گیتهاب:

https://gist.github.com/arsalanses/805d6e7189e9f1e390a2d2d84c72b9d2

اگه موردی هست که براتون سوال ایجاد کرده خوشحال میشم برام تو نظرات این پست بنویسید ?

تامام./