یک اسکریپت پایتون بنویسید که یک لیست از دیکشنری‌های حاوی داده‌های حسگر (کلیدها: timestamp, temperature, humidity) را با استفاده از csv.DictWriter به فایل CSV با هدرهای مرتب ['timestamp','temperature','humidity'] صادر کند به طوری که اگر برخی دیکشنری‌ها کلیدی را ندارند، مقدار خالی در فایل نوشته شود.

8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:55

0.0

برای حل این مسئله از ماژول استاندارد csv پایتون استفاده کنید: فایل را با with و حالت نوشتن باز کرده و هنگام باز کردن فایل از newline='' و encoding='utf-8' استفاده کنید، سپس یک csv.DictWriter با fieldnames مشخص بسازید، writeheader() را فراخوانی کنید و با writerows(data_list) داده‌ها را بنویسید. برای مقداردهی به کلیدهای گمشده می‌توانید از پارامتر restval='' در سازنده DictWriter یا قبل از نوشتن با dict.get('key','') مقادیر پیش‌فرض را قرار دهید؛ همچنین برای نادیده‌گرفتن کلیدهای اضافی از extrasaction='ignore' بهره ببرید. این تکنیک در اتوماسیونِ استخراج داده و آماده‌سازی فایل‌های CSV برای تحلیل داده‌های علوم داده بسیار کاربردی است.

توسط پژوهشگر در 201 روز قبل ساعت 03:55
دسته بندی ها: Python Python for beginner
nima در 201 روز قبل ساعت 04:43

برای صادرکردن داده‌های حسگر با csv.DictWriter، فیلدنام‌ها را به ترتیب ['timestamp','temperature','humidity'] مشخص کنید و فایل را با with و گزینه‌های newline='' و encoding='utf-8' باز کنید تا از خطوط اضافی جلوگیری شود. برای مقداردهی پیش‌فرض کلیدهای گمشده، از restval='' در سازنده DictWriter یا از dict.get استفاده کنید تا مقدار خالی در CSV نوشته شود. برای نادیده‌گرفتن کلیدهای اضافی نیز می‌توانید extrasaction='ignore' را به DictWriter بدهید تا تنها ستون‌های تعریف‌شده در fieldnames نوشته شوند. استفاده از writerows(data_list) کار را سریع می‌کند و با writeheader() هم عنوان‌بندی درست فایل CSV انجام می‌شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری