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])
نتیجه نهایی روی گیتهاب:
اگه موردی هست که براتون سوال ایجاد کرده خوشحال میشم برام تو نظرات این پست بنویسید ?
تامام./
مطلبی دیگر از این انتشارات
یوزر No Login در لینوکس ? (دسترسی امن پورتفروارد)
مطلبی دیگر از این انتشارات
? بات تلگرام برای مانیتور و گزارش وضعیت داکر کانتینرها
مطلبی دیگر از این انتشارات
لغو قانون تغییر ساعت رسمی، چک کردن tzdata تمام سرور ها با انسیبل