رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مثال متوسط ۱۲ دقیقه

خط لولهٔ نمره‌ها از CSV تا JSON

فایل نمره‌های CSV را بخوان، سطرهای خراب را با شماره گزارش کن و نتیجهٔ تمیز را JSON ذخیره کن.

صورت مسئله

فایل نمره‌های CSV را بخوان، سطرهای خراب را با شماره گزارش کن و نتیجهٔ تمیز را JSON ذخیره کن.

مثال حل‌شده

خط لولهٔ نمره

متوسط

صورت مسئله

ورودی سه سطری با یک سطر خراب؛ خروجی JSON فقط با سطرهای سالم + گزارش سطر خراب.

راه‌حل گام‌به‌گام

    ۴ گام باقی مانده
    import csv, json
    from pathlib import Path
    
    def pipeline(src, dst):
        src, dst = Path(src), Path(dst)
        good, bad = [], []
        with src.open(encoding="utf-8", newline="") as f:
            for lineno, row in enumerate(csv.DictReader(f), start=2):
                try:
                    score = float(row["score"])
                    if not 0 <= score <= 20:
                        raise ValueError("خارج از بازه")
                    good.append({"name": row["name"].strip(), "score": score})
                except (ValueError, KeyError, TypeError) as e:
                    bad.append(f"سطر {lineno}: {e}")
        dst.write_text(json.dumps(good, ensure_ascii=False, indent=2), encoding="utf-8")
        return bad
    
    print(pipeline("scores.csv", "clean.json"))

    مطالب مرتبط

    از همین بخش و با برچسب‌های مشترک

    این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

    وضعیت پیشرفت برای خط لولهٔ نمره‌ها از CSV تا JSON