Как преобразовать CSV в JSON в Python FOSS

Как преобразовать CSV в JSON в Python FOSS

Задача

Конвертировать CSV‑файл в JSON с помощью Aspose.Cells FOSS в Python. Загрузите CSV с load_csv_workbook(), прочитайте каждую строку, используя iter_rows(), чтобы построить список словарей Python, затем сериализуйте в JSON, используя стандартный модуль json.

Требования

Чтобы преобразовать CSV в JSON с помощью Aspose.Cells FOSS в Python, убедитесь, что ваша среда соответствует следующим требованиям.

  • Установлен Python 3.7 или новее
  • Установите Aspose.Cells FOSS через pip install aspose-cells-foss>=26.3.1
  • Импортируйте библиотеку с помощью from aspose.cells_foss import load_csv_workbook
  • Базовое знакомство с работой с файлами в Python и стандартным модулем json

Шаги конвертации

Шаг 1: Загрузить CSV‑файл

Используйте удобную функцию load_csv_workbook() для загрузки CSV‑файла в новую книгу. Это инициализирует представление данных таблицы в памяти.

from aspose.cells_foss import load_csv_workbook

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

Шаг 2: Чтение заголовков и строк

Используйте iter_rows(values_only=True) для извлечения всех строк в виде кортежей значений ячеек. Первая строка рассматривается как строка заголовков.

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])]

Шаг 3: Создать список словарей и сериализовать в JSON

Итерируйте оставшиеся строки, создайте словарь для каждой строки, используя имена заголовков в качестве ключей, затем используйте json.dump() для записи 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")

Пример кода

Полный сквозной пример, объединяющий все три шага:

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")

Поддерживаемые форматы

Aspose.Cells FOSS поддерживает загрузку файлов CSV и экспорт в JSON с помощью подхода, показанного выше. Библиотека также поддерживает прямое сохранение в другие форматы.

ФорматРасширениеПримечания
CSV (ввод).csvЗагрузить с помощью load_csv_workbook("file.csv")
JSON (вывод).jsonСоздано с помощью Python json.dump() после итерации по ячейкам
XLSX (ввод/вывод).xlsxСтандартный формат Excel Open XML
Markdown (вывод).mdИспользовать wb.save_as_markdown("file.md")

См. также

 Русский