Hvordan konvertere CSV til JSON i Python FOSS
Problem
Konverter en CSV-fil til JSON ved hjelp av Aspose.Cells FOSS i Python. Last inn CSV-filen med load_csv_workbook(), les hver rad ved å bruke iter_rows() for å bygge en Python liste med ordbøker, og deretter serialisere til JSON ved hjelp av standard json modul.
Forutsetninger
For å konvertere CSV til JSON ved hjelp av Aspose.Cells FOSS i Python, sørg for at miljøet ditt oppfyller følgende krav.
- Python 3.7 eller nyere installert
- Installer Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importer biblioteket ved å bruke
from aspose.cells_foss import load_csv_workbook - Grunnleggende kjennskap til Python filhåndtering og standard
jsonmodul
Konverteringssteg
Steg 1: Last inn CSV-filen
Bruk load_csv_workbook() hjelpefunksjonen for å laste CSV-filen inn i en ny arbeidsbok. Dette initialiserer den minnebaserte representasjonen av regnearkdataene.
from aspose.cells_foss import load_csv_workbook
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]Steg 2: Les overskrifter og rader
Bruk iter_rows(values_only=True) for å hente ut alle rader som tupler av celleverdier. Den første raden behandles som overskriftsrad.
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])]Steg 3: Bygg en liste med dicts og serialiser til JSON
Iterer de resterende radene, bygg en dict per rad nøkkelbundet til overskriftsnavnene, og bruk deretter json.dump() for å skrive JSON-filen.
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")Kodeeksempel
Det komplette ende-til-ende-eksemplet som kombinerer alle tre trinnene:
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")Støttede formater
Aspose.Cells FOSS supports loading CSV files and exporting to JSON via the approach shown above. The library also supports direct save to other formats.
| Format | Filtype | Notater |
|---|---|---|
| CSV (inndata) | .csv | Last inn med load_csv_workbook("file.csv") |
| JSON (utdata) | .json | Bygget med Python json.dump() etter å ha iterert celler |
| XLSX (inngang/utdata) | .xlsx | Standard Excel Open XML-format |
| Markdown (utdata) | .md | Bruk wb.save_as_markdown("file.md") |