ویرگول
ورودثبت نام
ارسلان سفیدگر
ارسلان سفیدگرhttps://arsalanse.ir
ارسلان سفیدگر
ارسلان سفیدگر
خواندن ۱ دقیقه·۴ سال پیش

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

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

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

import os PATH = "/home/my_jsons" 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["fild_1"] if KEY_WORD in link: pass

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

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

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

with open('res.csv', 'w') as result_file: writer = csv.writer(result_file) writer.writerow(["counter", "fild_1", "entry.name", "index"]) writer.writerow([counter, fild_1, entry.name, index])

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

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

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

تامام./

پایتونjsoncsvبیگ‌دیتاpython
۳
۰
ارسلان سفیدگر
ارسلان سفیدگر
https://arsalanse.ir
G2 Tech
G2 Tech
اینجا G2 Tech است
شاید از این پست‌ها خوشتان بیاید