Cara Menukar CSV kepada JSON dalam Python FOSS
Masalah
Menukar fail CSV kepada JSON menggunakan Aspose.Cells FOSS dalam Python. Muatkan CSV dengan load_csv_workbook(), baca setiap baris menggunakan iter_rows() untuk membina senarai kamus Python, kemudian serialisasikan kepada JSON menggunakan modul json standard.
Prasyarat
Untuk menukar CSV kepada JSON menggunakan Aspose.Cells FOSS dalam Python, pastikan persekitaran anda memenuhi keperluan berikut.
- Python 3.7 atau versi lebih baru dipasang
- Pasang Aspose.Cells FOSS melalui
pip install aspose-cells-foss>=26.3.1 - Import perpustakaan menggunakan
from aspose.cells_foss import load_csv_workbook - Kefahaman asas tentang pengendalian fail Python dan modul standard
json
Langkah Penukaran
Langkah 1: Muat Fail CSV
Gunakan fungsi kemudahan load_csv_workbook() untuk memuatkan fail CSV ke dalam buku kerja baru. Ini menginisialisasi representasi dalam memori bagi data hamparan.
from aspose.cells_foss import load_csv_workbook
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]Langkah 2: Baca Tajuk dan Baris
Gunakan iter_rows(values_only=True) untuk mengekstrak semua baris sebagai tuple nilai sel. Baris pertama dianggap sebagai baris tajuk.
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])]Langkah 3: Bina Senarai Kamus dan Serialkan ke JSON
Ulangi baris yang masih ada, bina kamus per baris yang menggunakan nama tajuk sebagai kunci, kemudian gunakan json.dump() untuk menulis fail 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")Contoh Kod
Contoh lengkap dari awal hingga akhir yang menggabungkan ketiga-tiga langkah:
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")Format yang Disokong
Aspose.Cells FOSS menyokong pemuatan fail CSV dan mengeksport ke JSON melalui pendekatan yang ditunjukkan di atas. Perpustakaan ini juga menyokong penyimpanan langsung ke format lain.
| Format | Sambungan | Catatan |
|---|---|---|
| CSV (input) | .csv | Muat dengan load_csv_workbook("file.csv") |
| JSON (output) | .json | Dibina dengan Python json.dump() selepas mengulangi sel |
| XLSX (input/output) | .xlsx | Format Excel Open XML standard |
| Markdown (output) | .md | Gunakan wb.save_as_markdown("file.md") |