Автор оригинала: Pankaj Kumar.
Есть много способов преобразовать файл Excel в данные JSON. В этом руководстве мы рассмотрим два модуля Python для преобразования файлов Excel в JSON.
- Excel2JSON-3
- Панда
Преобразование файла Excel в файлы JSON с использованием модуля Excel2JSON-3
Это очень простой модуль для преобразования файлов Excel в файлы JSON. Содержимое из листа Excel преобразуется в строку JSON и сохраняется в файле.
Имя файлов получено из названий листов Excel. Итак, если есть два листа с именем «Числа» и «Автомобили», файлы JSON будут названы как Numbers.json и Cars.json соответственно.
Модуль поддерживает форматы файлов .xls и .xlsx для преобразования. Мы можем прочитать файл Excel из файловой системы, а также URL.
Мы можем установить этот модуль с помощью команды PIP.
$ pip install excel2json-3
Для нашего примера я создал файл Excel с именем «Records.xlsx», имеющий три листа.
Вот сценарий для преобразования этого файла Excel в файлы JSON.
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" } ]
Номера
[ { "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 String с помощью модуля 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 с помощью ROW-WISE ориентацией, пройдите значение параметра «Orient» в качестве «записей».
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.