איך להמיר CSV ל‑JSON בפייתון קוד פתוח

איך להמיר CSV ל‑JSON בפייתון קוד פתוח

בעיה

המר קובץ CSV ל‑JSON באמצעות Aspose.Cells FOSS בפייתון. טען את ה‑CSV עם load_csv_workbook(), קרא כל שורה באמצעות iter_rows() כדי לבנות רשימת מילונים של פייתון, ואז סדר ל‑JSON באמצעות מודול json הסטנדרטי.

דרישות מקדימות

כדי להמיר CSV ל‑JSON באמצעות Aspose.Cells FOSS בפייתון, ודא שהסביבה שלך עומדת בדרישות הבאות.

  • Python 3.7 או גרסה מאוחרת מותקנת
  • התקן את Aspose.Cells FOSS דרך pip install aspose-cells-foss>=26.3.1
  • ייבא את הספרייה באמצעות from aspose.cells_foss import load_csv_workbook
  • היכרות בסיסית עם טיפול בקבצים ב-Python והמודול הסטנדרטי json

שלבי המרה

שלב 1: טען את קובץ ה‑CSV

השתמש בפונקציית הנוחות load_csv_workbook() כדי לטעון את קובץ ה‑CSV למחברת חדשה. פעולה זו מאתחלת את הייצוג בזיכרון של נתוני הגיליון.

from aspose.cells_foss import load_csv_workbook

workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]

שלב 2: קריאת כותרות ושורות

השתמש בiter_rows(values_only=True) כדי לחלץ את כל השורות כטאפלים של ערכי תאים. השורה הראשונה מתייחסת כשורת הכותרת.

all_rows = list(worksheet.cells.iter_rows(values_only=True))

# Read the header row (first row)
headers = [str(v) if v is not None else f"col{i}" for i, v in enumerate(all_rows[0])]

שלב 3: בניית רשימת מילונים וסריאליזציה ל‑JSON

חזור על השורות הנותרות, בנה מילון לכל שורה עם מפתחות משמות הכותרות, ואז השתמש בjson.dump() כדי לכתוב את קובץ ה‑JSON.

import json

rows = [dict(zip(headers, row)) for row in all_rows[1:]]

with open("output.json", "w", encoding="utf-8") as f:
    json.dump(rows, f, indent=2, default=str)

print(f"Converted {len(rows)} rows to output.json")

דוגמת קוד

הדוגמה המלאה מקצה לקצה המשולבת את כל שלושת השלבים:

import json
from aspose.cells_foss import load_csv_workbook

# Step 1: Load CSV
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]

# Step 2: Extract all rows; first row is headers
all_rows = list(worksheet.cells.iter_rows(values_only=True))
if not all_rows:
    print("No data found in CSV")
else:
    headers = [str(v) if v is not None else f"col{i}" for i, v in enumerate(all_rows[0])]

    # Step 3: Build list of dicts from remaining rows
    rows = [dict(zip(headers, row)) for row in all_rows[1:]]

    # Step 4: Write JSON
    with open("output.json", "w", encoding="utf-8") as f:
        json.dump(rows, f, indent=2, default=str)

    print(f"Converted {len(rows)} rows to output.json")

פורמטים נתמכים

Aspose.Cells FOSS תומך בטעינת קבצי CSV וייצוא ל‑JSON באמצעות הגישה המוצגת למעלה. הספרייה תומכת גם בשמירה ישירה לפורמטים אחרים.

פורמטסיומתהערות
CSV (קלט).csvטען עם load_csv_workbook("file.csv")
JSON (פלט).jsonנבנה עם Python json.dump() לאחר איטרציה של תאים
XLSX (קלט/פלט).xlsxפורמט Excel Open XML סטנדרטי
Markdown (פלט).mdהשתמש בwb.save_as_markdown("file.md")

ראה גם

 עברית