Hur man konverterar CSV till JSON i Python FOSS

Hur man konverterar CSV till JSON i Python FOSS

Problem

Konvertera en CSV-fil till JSON med Aspose.Cells FOSS i Python. Läs in CSV-filen med load_csv_workbook(), läs varje rad med iter_rows() för att bygga en Python lista av ordböcker, sedan serialisera till JSON med den standard json modulen.

Förutsättningar

För att konvertera CSV till JSON med Aspose.Cells FOSS i Python, se till att din miljö uppfyller följande krav.

  • Python 3.7 eller senare installerat
  • Installera Aspose.Cells FOSS via pip install aspose-cells-foss>=26.3.1
  • Importera biblioteket med from aspose.cells_foss import load_csv_workbook
  • Grundläggande kunskap om Python filhantering och den standard json modulen

Konverteringssteg

Steg 1: Läs in CSV-filen

Använd load_csv_workbook() bekvämlighetsfunktion för att läsa in CSV-filen i en ny arbetsbok. Detta initierar den minnesbaserade representationen av kalkylbladsdata.

from aspose.cells_foss import load_csv_workbook

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

Steg 2: Läs rubriker och rader

Använd iter_rows(values_only=True) för att extrahera alla rader som tupplar av cellvärden. Den första raden behandlas som rubrikraden.

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 lista av dicts och serialisera till JSON

Iterera de återstående raderna, bygg en dict per rad nycklad av rubriknamnen, och använd sedan json.dump() för att skriva 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")

Kodexempel

Det fullständiga end-to-end-exemplet som kombinerar alla tre stegen:

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ödda format

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.

FormatFiländelseAnteckningar
CSV (inmatning).csvLäs in med load_csv_workbook("file.csv")
JSON (utdata).jsonByggd med Python json.dump() efter att ha itererat celler
XLSX (inmatning/utmatning).xlsxStandard Excel Open XML-format
Markdown (utdata).mdAnvänd wb.save_as_markdown("file.md")

Se även

 Svenska