Com convertir CSV a JSON amb Python FOSS
Problema
Converteix un fitxer CSV a JSON utilitzant Aspose.Cells FOSS a Python. Carrega el CSV amb load_csv_workbook(), llegeix cada fila utilitzant iter_rows() per construir una llista de diccionaris de Python, i després serialitza a JSON amb el mòdul estàndard json.
Requisits previs
Per convertir CSV a JSON amb Aspose.Cells FOSS a Python, assegureu-vos que el vostre entorn compleixi els requisits següents.
- Python 3.7 o posterior instal·lat
- Instal·la Aspose.Cells FOSS via
pip install aspose-cells-foss>=26.3.1 - Importa la biblioteca utilitzant
from aspose.cells_foss import load_csv_workbook - Familiaritat bàsica amb la gestió de fitxers Python i el mòdul estàndard
json
Passos de conversió
Pas 1: Carrega el fitxer CSV
Utilitzeu la funció de conveniència load_csv_workbook() per carregar el fitxer CSV en un nou llibre de treball. Això inicialitza la representació en memòria de les dades del full de càlcul.
from aspose.cells_foss import load_csv_workbook
workbook = load_csv_workbook("data.csv")
worksheet = workbook.worksheets[0]Pas 2: Llegir les capçaleres i les files
Utilitzeu iter_rows(values_only=True) per extreure totes les files com a tuples de valors de les cel·les. La primera fila es tracta com a fila de capçalera.
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])]Pas 3: Construir una llista de diccionaris i serialitzar a JSON
Itera les files restants, crea un diccionari per fila clau per noms de capçalera, després utilitza json.dump() per escriure el fitxer 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")Exemple de codi
L’exemple complet de principi a fi que combina els tres passos:
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")Formats compatibles
Aspose.Cells FOSS admet la càrrega de fitxers CSV i l’exportació a JSON mitjançant l’enfocament mostrat anteriorment. La biblioteca també admet el desament directe a altres formats.
| Format | Extensió | Notes |
|---|---|---|
| CSV (entrada) | .csv | Carrega amb load_csv_workbook("file.csv") |
| JSON (sortida) | .json | Construït amb Python json.dump() després d’iterar les cel·les |
| XLSX (entrada/sortida) | .xlsx | Format Excel Open XML estàndard |
| Markdown (sortida) | .md | Utilitza wb.save_as_markdown("file.md") |