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])نتیجه نهایی روی گیتهاب:
اگه موردی هست که براتون سوال ایجاد کرده خوشحال میشم برام تو نظرات این پست بنویسید ?
تامام./
مطلبی دیگر از این انتشارات
ساخت ایمج داکر با کانیکو
مطلبی دیگر از این انتشارات
مدیریت تعداد بالای ریموت سرور
مطلبی دیگر از این انتشارات
اتوماتیک کردن کانفیگ اولیه سرور cloud-init