Come convertire CSV in JSON in Python FOSS
Problema
Converti un file CSV in JSON usando Aspose.Cells FOSS in Python. Carica il CSV con load_csv_workbook(), leggi ogni riga usando iter_rows() per costruire una lista Python di dizionari, quindi serializza in JSON usando il modulo standard json.
Prerequisiti
Per convertire CSV in JSON usando Aspose.Cells FOSS in Python, assicurati che il tuo ambiente soddisfi i seguenti requisiti.
- Python 3.7 o versioni successive installato
- Installa Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importa la libreria usando
from aspose.cells_foss import load_csv_workbook - Familiarità di base con la gestione dei file Python e il modulo standard
json
Passaggi di conversione
Passo 1: Carica il file CSV
Utilizza la funzione di comodità load_csv_workbook() per caricare il file CSV in una nuova cartella di lavoro. Questo inizializza la rappresentazione in memoria dei dati del foglio di calcolo.
from aspose.cells_foss import load_csv_workbook
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]Passo 2: Leggi intestazioni e righe
Usa iter_rows(values_only=True) per estrarre tutte le righe come tuple di valori di cella. La prima riga è trattata come riga di intestazione.
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])]Passo 3: Costruire un elenco di dizionari e serializzarlo in JSON
Itera le righe rimanenti, crea un dizionario per ogni riga indicizzato dai nomi delle intestazioni, quindi usa json.dump() per scrivere il 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")Esempio di codice
L’esempio completo end-to-end che combina tutti e tre i passaggi:
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")Formati supportati
Aspose.Cells FOSS supporta il caricamento di file CSV e l’esportazione in JSON tramite l’approccio mostrato sopra. La libreria supporta anche il salvataggio diretto in altri formati.
| Formato | Estensione | Note |
|---|---|---|
| CSV (input) | .csv | Carica con load_csv_workbook("file.csv") |
| JSON (output) | .json | Creato con Python json.dump() dopo aver iterato le celle |
| XLSX (input/output) | .xlsx | Formato standard Excel Open XML |
| Markdown (output) | .md | Usa wb.save_as_markdown("file.md") |