تبدیل داده های بدون ساختار به ساخت یافته با پایتون و API نقشه گوگل – راهنمای کامل

۸۲۰ بازدید
آخرین به‌روزرسانی: ۲۴ اردیبهشت ۱۴۰۲
زمان مطالعه: ۴ دقیقه
دانلود PDF مقاله
تبدیل داده های بدون ساختار به ساخت یافته با پایتون و API نقشه گوگل – راهنمای کاملتبدیل داده های بدون ساختار به ساخت یافته با پایتون و API نقشه گوگل – راهنمای کامل

جمع‌آوری آدرس‌ها از منابع گوناگون وب، اغلب منجر به ایجاد مجموعه داده‌های ناسازگار می‌شود. ساختاردهی به این داده‌ها یکی از وظایفی به شمار می‌آید که هیچ کس واقعا تمایلی به انجام آن ندارد زیرا کاری عادی، خسته‌کننده و زمان‌بر است. چنین مسائلی معمولا با استفاده از کدنویسی قابل حل هستند. در این مطلب، چگونگی تبدیل داده‌های بدون ساختار آدرس‌ها با پایتون و API نقشه گوگل بررسی شده است.

997696

مساله تبدیل داده‌های بدون ساختار آدرس

فرض می‌شود که جدول داده‌ای با آدرس‌هایی شبیه آنچه در تصویر زیر آمده وجود دارد.

جدول آدرس‌های ساختار نیافته

اما کاربر به جدولی مانند آنچه در تصویر زیر آمده نیاز دارد.

جدول آدرس‌های ساختاریافته

انجام این تبدیل کار عذاب‌آوری به نظر می‌رسد! دلیل این امر وجود ناسازگاری‌ها و مرزبندی‌های نامناسب است که البته در مثال بالا تعداد کمی از آن‌ها وجود دارد، ولی در مجموعه داده‌های جهان واقعی تعداد آن‌ها بسیار زیاد و قابل توجه محسوب می‌شود. افرادی که با نرم‌افزارهای صفحه گسترده مانند «اکسل» (Excel) آشنایی دارند، ممکن است راهی برای حل این مساله به صورت خودکار پیدا کنند، ولی این کار نیازمند تعداد زیادی عبارت if-else تو‌در‌تو است که نوشتن آن‌ها زمان زیادی می‌برد و توسط شخص دیگری نیز قابل خواندن نیست.

راهکار

دستکاری داده‌ها با استفاده از «زبان برنامه‌نویسی پایتون» (Python Programming Language) آسان‌تر است. در این راستا باید بخش‌های آدرس در یک رشته منفرد را پیدا، مجزا و هر یک را در یک ستون جدید ذخیره کرد. برای انجام این کار، از یک API رایگان استفاده خواهد شد. یک گزینه خوب در این زمینه «Google Maps Geocoding API» (+) است.

آنچه که کاربر در نوار جست‌و‌جوی «نقشه گوگل» (Google Map) وارد می‌کند با استفاده از همین «رابط برنامه‌نویسی نرم‌افزار کاربردی» (Application programming interface | API) اغلب به درستی به داده‌های آدرس‌ها تفسیر می‌شوند. با وجود محدودیت‌های مشخصی که برای استفاده از این API وجود دارد (+)، Geocoding API به طور کامل رایگان است و می‌توان آن را بدون پرداخت هزینه نصب کرد. پس از نصب لازم است که هر کاربر کلید API خود را در این مسیر (+) اعلام کند.

راهنمای گام به گام

در ادامه، راهنمای گام به گام تبدیل داده‌های بدون ساختار آدرس به داده‌های ساختار یافته ارائه شده است.

۱. مخازن

ابتدا، ماژول‌هایی که به تعامل با رابط برنامه‌نویسی نرم‌افزار کاربردی (requests) کمک می‌کند ایمپورت، داده‌ها بارگذاری (json، CSV) و پیشرفت کار پیگیری می‌شود (tqdm).

۲. واکشی آدرس‌ها از ستون‌های CSV

یک تابع برای دریافت آدرس‌ها از CSV و ذخیره‌سازی آن‌ها در یک آرایه ساخته می‌شود. تنها ورودی‌های این تابع path و column هستند.

۳. مقداردهی اولیه

در گام بعدی، از تابع addresses_from_csv استفاده می‌شود. در این راستا، کلید API تنظیم و مقداردهی اولیه یک آرایه انجام می‌پذیرد که برای ذخیره‌سازی آدرس‌های تبدیل شده مورد استفاده قرار می‌گیرد.

۴. فراخوانی API

اجرای حلقه در آرایه addresses با هر آدرسی به عنوان یک کوئری در یک فراخوانی تنهای API آغاز می‌شود.

کتابخانه requests برای اجرای فراخوانی‌های API مورد استفاده قرار می‌گیرد.

آنچه در ادامه آمده خروجی JSON کد بالا است.

۵. آدرس‌دهی عنصر صحیح در JSON/Dict

پس از آنکه فایل خروجی اکتشاف شد، می‌توان عناصری که مورد نیاز است را تعیین و آن‌ها را به آرایه تبدیل شده جدید در هر فرمتی که کاربر تمایل دارد افزود.

تنها کافی است به موارد مرزی مانند «داده‌های ناموجود» (missing data) یا داده‌های تگ شده به صورت ناسازگار دقت کرد. گاهی، city به عنوان locality و گاهی به عنوان postal_town ظاهر می‌شود.

۶. نوشتن نتایج نهایی در فایل CSV

در گام نهایی، از آرایه تبدیل شده استفاده و محتوای آن روی یک فایل CSV نوشته می‌شود.

ماموریت انجام شد!

داده‌های ساختار یافته آدرس

اکنون فایل ساختار یافته آدرس‌ها در فایل CSV وجود دارد. کد کامل این مطلب در گیت‌هاب (+) موجود است. علاقمندان می‌توانند به این کد امتیاز بدهند، آن را فورک کرده و تغییر دهند و یا صرفا از آن استفاده کنند.

اگر مطلب بالا برای شما مفید بوده، آموزش‌های زیر نیز به شما پیشنهاد می‌شود:

^^

بر اساس رای ۳ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
codeburst
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *