کار با انواع فرمت ها در پایتون (JSON ،CSV و XML) – به زبان ساده
![کار با انواع فرمت ها در پایتون (JSON ،CSV و XML) – به زبان ساده](https://blog.faradars.org/wp-content/uploads/2019/04/Python-File-Formats-150x150.jpg)
![کار با انواع فرمت ها در پایتون (JSON ،CSV و XML) – به زبان ساده](https://blog.faradars.org/wp-content/uploads/2019/04/Python-File-Formats.jpg)
انعطافپذیری و سهولت استفاده از «زبان برنامهنویسی پایتون» (Python Programming Language)، این زبان را به یکی از محبوبترین زبانها به ویژه برای «دانشمندان داده» (Data Scientist)، مبدل کرده است. یکی از دلایل مهم این امر، سادگی کار با مجموعهدادههای بزرگ در زبان پایتون است. امروزه، همه شرکتهای فناوری، استراتژیهای خاصی را پیرامون «دادهها» برای خود تدوین کردهاند. همه این سازمانها متوجه شدهاند که داشتن دادههای مناسب (معنادار، تمیز و در هر اندازهای که امکان دارد)، به آنها یک مزیت رقابتی کلیدی میدهد. دادهها، اگر به صورت موثر مورد استفاده قرار بگیرند، میتوانند مزیت رقابتی قابل توجهی را برای سازمان به ارمغان بیاورند و بینشی را فراهم کنند که در هیچ کجا و به هیچ شکل دیگر قابل کشف نیست. در طی سالهای اخیر، لیست فرمتهایی که میتوان دادهها را در آنها ذخیره کرد همواره رو به افزایش بوده است. اما در این میان، سه فرمت JSON ،CSV و XML غالب بودهاند. در این مطلب، سادهترین راهکارها برای کار با انواع فرمت ها در پایتون (JSON ،CSV و XML)، بیان شده است.
کار با انواع فرمت ها در پایتون
در ادامه، روش کار با فرمتهای محبوب JSON ،CSV و XML در پایتون بیان و قطعه کدهای لازم برای انجام هر عملیات به طور کامل ارائه شده است.
دادههای CSV
فایلهای CSV (سه حرف CSV، سرنامی برای Comma Separated Values هستند) راهکاری متداول برای ذخیرهسازی دادهها محسوب میشوند. بیشتر دادههایی که در رقابتهای «کگل» (Kaggle) مورد استفاده قرار میگیرند از این نوع هستند. با استفاده از تابع توکار CSV در پایتون، میتوان فایلهای CSV را هم خواند (Read) و هم روی آنها نوشت (Write). به طور متداول، دادهها در یک لیست از لیستها خوانده میشوند. کدی که در ادامه آمده، در این راستا شایان توجه است.
هنگامی که ()csv.reader اجرا شود، همه دادههای CSV در دسترس قرار میگیرند. تابع ()csvreader.next یک خط تنها را از CSV میخواند. هر بار که این تابع فراخوانی شود، به خط بعدی میرود. همچنین، میتواند در هر سطر از فایل CSV با استفاده از حلقه for به صورت for row in csvreader، تکرار داشته باشد (حلقه زدن). باید اطمینان حاصل کرد که تعداد ستونها در کلیه سطرها با هم برابر است. در غیر این صورت، کاربر ممکن است با خطاهایی در حین کار با لیستی از لیستها، مواجه شود.
نوشتن روی فایل CSV در پایتون، به سادگی خواندن دادهها از روی آن است. در این راستا، باید اسامی فیلد را در یک لیست کوتاه تنظیم کرد. این بار، باید یک شی ()writer - توسط کاربر - ساخته شود و از آن برای نوشتن دادهها در یک فایل به شیوهای بسیار مشابه با کاری که برای خواندن دادهها از روی یک فایل انجام شده، استفاده شود.
البته، نصب کتابخانه فوقالعاده عالی «پانداس» (Pandas) کار با دادهها را پس از خواندن آنها در یک متغیر، بسیار سادهتر میکند. خواندن از یک فایل CSV با استفاده از کتاب پانداس نیز همچون نوشتن روی آن، با یک خط کد امکانپذیر است.
حتی میتوان از پانداس برای تبدیل یک فایل CSV به یک لیست از دیکشنریها (Dictionaries) تنها با یک خط کد، استفاده کرد. هنگامی که دادهها به صورت یک لیست از دیکشنریها قالببندی شدند، از کتابخانه dicttoxml برای تبدیل آن به قالب XML استفاده میشود. همچنین، میتوان آن را به صورت فایل JSON نیز ذخیره کرد.
دادههای JSON
«جیسان» (JSON) یک قالب تمیز و به سادگی قابل خواندن را فراهم میکند، زیرا ساختاری با استایل دیکشنری را حفظ میکند. درست مانند CSV، پایتون دارای یک ماژول توکار برای JSON نیز هست که خواندن و نوشتن را فوقالعاده در این فرمت آسان میکند. در پایتون، پس از خوانده شدن یک فایل CSV، به یک دیکشنری مبدل میشود. سپس، دیکشنری مذکور توسط کاربر روی یک فایل نوشته میشود.
همانطور که پیش از این مشاهده شد، میتوان دادهها را به سادگی با استفاده از کتابخانه Pandas یا ماژول پایتون توکار CSV به CSV مبدل کرد. برای تبدیل به XML، کتابخانه dicttoxml به کمک کاربر میآید.
دادههای XML
کار با دادهها در قالب XML، کمی با انواع دادههای CSV و JSON متفاوت است. به طور کلی، CSV و JSON به دلیل سادگی که دارند به طور گسترده مورد استفاده قرار میگیرند. نوشتن، خواندن و تفسیر هر دو نوع فایل بیان شده، برای انسان آسان است. به منظور کار با این دو فرمت داده، نیازی به هیچ کار دیگری (به جز آنچه بیان شد) نیست. تجزیه (Parsing) یک فایل JSON یا CSV بسیار ساده است. اما کار با فایلهای XML اندکی دشوارتر است. این در حالی است که فرمت XML نسبت به JSON و CSV دارای ویژگیهای افزودهای است. کاربر میتواند از فضای نام برای ساخت و به اشتراکگذاری ساختارهای استاندارد، ارائه بهتری برای ارثبری و یک راهکار استانداردشده صنعتی جهت ارائه دادهها با شمای XML و DTD و دیگر موارد استفاده کند. برای خواندن دادههای XML، از ماژول توکار پایتون با زیرماژولی (Sub-Module) با عنوان ElementTree استفاده میشود. از آنجا، میتوان شی ElementTree را با استفاده از کتابخانه xmltodict به یک شی تبدیل کرد. هنگامی که یک دیکشنری وجود دارد، میتوان آن را به JSON ،CSV یا دیتافریم پانداس (مانند آنچه در بالا مشاهده شد) تبدیل کرد.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون Python
- آموزش یادگیری ماشین (Machine Learning) با پایتون (Python)
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
- آموزش یادگیری ماشین با مثالهای کاربردی — مجموعه مقالات جامع وبلاگ فرادرس
- چگونه یک دانشمند داده شوید؟ — راهنمای گامبهگام به همراه معرفی منابع
^^
سلام
ممنون میشم راهنمایی کنید:
چطور میتونم تعداد زیادی فایل text را به یک فایل CSV تبدیل کنم؟
سلام.ممنون از مطلبتون
میخواستم بدونم اطلاعات داخل یک دیکشنری رو چطور میتونم تبدیل به یک فایل txt یا یک فایل csv کنم.
ممنون