Sådan konverteres CSV til JSON i Python FOSS
Problem
Konvertér en CSV-fil til JSON ved hjælp af Aspose.Cells FOSS i Python. Indlæs CSV-filen med load_csv_workbook(), læs hver række ved hjælp af iter_rows() for at opbygge en Python liste af ordbøger, og derefter serialisere til JSON ved hjælp af standard json modul.
Forudsætninger
For at konvertere CSV til JSON ved hjælp af Aspose.Cells FOSS i Python, skal du sikre, at dit miljø opfylder følgende krav.
- Python 3.7 eller nyere installeret
- Installer Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importér biblioteket ved hjælp af
from aspose.cells_foss import load_csv_workbook - Grundlæggende kendskab til Python filhåndtering og standard
jsonmodul
Konverteringstrin
Trin 1: Indlæs CSV-filen
Brug load_csv_workbook() den praktiske funktion til at indlæse CSV-filen i en ny projektmappe. Dette initialiserer den in‑memory‑repræsentation af regnearksdataene.
from aspose.cells_foss import load_csv_workbook
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]Trin 2: Læs overskrifter og rækker
Brug iter_rows(values_only=True) til at udtrække alle rækker som tupler af celleværdier. Den første række behandles som header‑række.
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])]Trin 3: Opbyg en liste af ordbøger og serialiser til JSON
Iterer de resterende rækker, opbyg en dict per række med header‑navnene som nøgler, og brug derefter json.dump() til at 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 end-to-end eksempel, der kombinerer alle tre trin:
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")Understø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ér | Udvidelse | Noter |
|---|---|---|
| CSV (inddata) | .csv | Indlæs med load_csv_workbook("file.csv") |
| JSON (output) | .json | Bygget med Python json.dump() efter at have itereret celler |
| XLSX (input/output) | .xlsx | Standard Excel Open XML-format |
| Markdown (output) | .md | Brug wb.save_as_markdown("file.md") |