Поиск по сайту:

Преобразование Python Excel в JSON


Существует множество способов преобразовать файл Excel в данные JSON. В этом руководстве мы рассмотрим два модуля Python для преобразования файлов Excel в JSON.

  1. excel2json-3
  2. Панды

Преобразование файла Excel в файлы JSON с использованием модуля excel2json-3

Это очень простой модуль для преобразования файлов Excel в файлы JSON. Содержимое листа Excel преобразуется в строку JSON и сохраняется в файле. Имя файлов происходит от имен листов Excel. Таким образом, если есть два листа с именами \Numbers и \Cars, файлы JSON будут называться Numbers.json и Cars.json соответственно. Модуль поддерживает форматы файлов .xls и .xlsx для преобразования. Мы можем прочитать файл excel из файловой системы, а также URL-адрес. Мы можем установить этот модуль с помощью команды PIP.

$ pip install excel2json-3
import excel2json

excel2json.convert_from_file('records.xlsx')

Сценарий создает три файла JSON. Сотрудники.json

[
    {
        "EmpID": 1.0,
        "EmpName": "Pankaj",
        "EmpRole": "CEO"
    },
    {
        "EmpID": 2.0,
        "EmpName": "David Lee",
        "EmpRole": "Editor"
    },
    {
        "EmpID": 3.0,
        "EmpName": "Lisa Ray",
        "EmpRole": "Author"
    }
]

Cars.json

[
    {
        "Car Name": "Honda City",
        "Car Model": "City",
        "Car Maker": "Honda",
        "Car Price": "20,000 USD"
    },
    {
        "Car Name": "Bugatti Chiron",
        "Car Model": "Chiron",
        "Car Maker": "Bugatti",
        "Car Price": "3 Million USD"
    },
    {
        "Car Name": "Ferrari 458",
        "Car Model": 458.0,
        "Car Maker": "Ferrari",
        "Car Price": "2,30,000 USD"
    }
]

Числа.json

[
    {
        "1.0": 3.0,
        "2.0": 4.0
    },
    {
        "1.0": "N1",
        "2.0": "N2"
    },
    {
        "1.0": 5.0,
        "2.0": 6.0
    },
    {
        "1.0": 7.0,
        "2.0": 8.0
    }
]

Если вам нужно прочитать файл Excel с URL-адреса, используйте функцию convert_from_url().

Ограничения модуля excel2json-3

  • Функции плагина очень ограничены.
  • Нет возможности пропустить какой-либо лист, строку или столбец. Это затрудняет работу с большими файлами Excel.
  • JSON сохраняется в файлы. В большинстве случаев мы хотим преобразовать в JSON и использовать его в нашей программе, а не сохранять в виде файла.
  • Целые числа преобразуются в числа с плавающей запятой.

Преобразование листа Excel в строку JSON с использованием модуля Pandas

Модуль Pandas предоставляет функции для чтения листов Excel в объект DataFrame. Есть много вариантов для указания заголовков, чтения определенных столбцов, пропуска строк и т. д. Вы можете узнать больше об этом в Pandas read_excel() — Чтение файла Excel в Python. Мы можем использовать функцию to_json() для преобразования объекта DataFrame в строку JSON. Давайте рассмотрим простой пример, чтобы прочитать лист «Сотрудники» и преобразовать его в строку JSON.

import pandas

excel_data_df = pandas.read_excel('records.xlsx', sheet_name='Employees')

json_str = excel_data_df.to_json()

print('Excel Sheet to JSON:\n', json_str)

Выход:

Excel Sheet to JSON:
 {"EmpID":{"0":1,"1":2,"2":3},"EmpName":{"0":"Pankaj","1":"David Lee","2":"Lisa Ray"},"EmpRole":{"0":"CEO","1":"Editor","2":"Author"}}

Итак, данные JSON создаются с ориентацией столбцов. Если вы хотите создать строку JSON с построчной ориентацией, передайте значение параметра «ориентация» как «записи».

json_str = excel_data_df.to_json(orient='records')

Выход:

Excel Sheet to JSON:
 [{"EmpID":1,"EmpName":"Pankaj","EmpRole":"CEO"},{"EmpID":2,"EmpName":"David Lee","EmpRole":"Editor"},{"EmpID":3,"EmpName":"Lisa Ray","EmpRole":"Author"}]

Заключение

Если у вас есть простой и хорошо структурированный файл Excel, и вы хотите преобразовать его в файлы JSON, используйте модуль excel2json-3. Но если вам нужен больший контроль над тем, как данные Excel считываются и преобразуются в строку JSON, используйте модуль pandas.

Рекомендации

  • страница excel2json-3 PyPI.org
  • Документ API Pandas DataFrame to_json()