Cara Mengonversi CSV ke JSON di Python FOSS
Masalah
Konversi file CSV ke JSON menggunakan Aspose.Cells FOSS di Python. Muat CSV dengan load_csv_workbook(), baca setiap baris menggunakan iter_rows() untuk membangun daftar kamus Python, kemudian serialisasikan ke JSON menggunakan modul standar json.
Prasyarat
Untuk mengonversi CSV ke JSON menggunakan Aspose.Cells FOSS di Python, pastikan lingkungan Anda memenuhi persyaratan berikut.
- Python 3.7 atau lebih baru terpasang
- Instal Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Impor perpustakaan menggunakan
from aspose.cells_foss import load_csv_workbook - Familiaritas dasar dengan penanganan file Python dan modul standar
json
Langkah-langkah Konversi
Langkah 1: Muat File CSV
Gunakan fungsi kemudahan load_csv_workbook() untuk memuat file CSV ke dalam workbook baru. Ini menginisialisasi representasi data spreadsheet dalam memori.
from aspose.cells_foss import load_csv_workbook
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]Langkah 2: Baca Header dan Baris
Gunakan iter_rows(values_only=True) untuk mengekstrak semua baris sebagai tuple nilai sel. Baris pertama diperlakukan sebagai baris header.
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: Bangun Daftar Kamus dan Serialisasi ke JSON
Iterasi baris-baris yang tersisa, buat sebuah dict per baris yang diindeks dengan nama header, kemudian gunakan json.dump() untuk menulis file 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 Kode
Contoh lengkap end-to-end yang menggabungkan ketiga 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 Didukung
Aspose.Cells FOSS mendukung pemuatan file CSV dan mengekspor ke JSON melalui pendekatan yang ditunjukkan di atas. Perpustakaan ini juga mendukung penyimpanan langsung ke format lain.
| Format | Extension | Notes |
|---|---|---|
| CSV (masukan) | .csv | Muat dengan load_csv_workbook("file.csv") |
| JSON (keluaran) | .json | Dibuat dengan Python json.dump() setelah mengiterasi sel |
| XLSX (masukan/keluaran) | .xlsx | Format Excel Open XML standar |
| Markdown (keluaran) | .md | Gunakan wb.save_as_markdown("file.md") |