Иногда нам нужно преобразовать Excel или CSV в другой формат, в этот раз мне нужно было преобразовать его в json.
Поэтому я создал небольшую программу, которая получает список из Excel, извлекает нужную информацию и передает ее в json.
Библиотека для чтения excel в python
Честно говоря, мне было лень заниматься чтением csv и/или excel, для этого я провел небольшое исследование и нашел библиотеку для python, которая является библиотекой анализа данных.
Pandas – это библиотека для python 3, которая очень проста в использовании, нам нужно только установить ее в наш проект, вызвать библиотеку и вызвать метод для чтения excel или csv.
python3 -m pip install --upgrade pandas
Итак, у нас есть библиотека, установленная в нашем python, теперь нам нужна другая библиотека для чтения и поддержки форматов excel (XLSX).
python3 -m pip install --upgrade xlrd
Немного питона
Мы будем использовать конкретно только две библиотеки, pandas и os.
С помощью os мы собираемся извлечь список файлов, которые мы хотим редактировать. Для этого нам понадобится следующая строка.
list_of_files = os.listdir("/files/")
Code language: JavaScript (javascript)
С её помощью мы можем получить массив с именами файлов. Внутри listdir мы поместим url папки, которую хотим просканировать.
Чтобы импортировать библиотеку pandas напишем:
import pandas as pd
Code language: JavaScript (javascript)
Для чтения файла excel напишем эту строку. (Если вы хотите узнать больше об этой библиотеке, я оставлю ссылку на read_excel).
data = pd.read_excel("/files/"+ x,usecols="A,E:F", encoding = 'utf8')
Code language: JavaScript (javascript)
Первым параметром вы указываете url файла для обработки, затем столбцы, которые нужно извлечь, и в конце – кодировку (необязательный параметр).
data.to_json(path_or_buf= x+'.json',orient='records')
Code language: JavaScript (javascript)
С помощью to_Json можно конвертировать в различные типы и формы json. Path_or_buf создает файл на диске, orient – формат генерации json.
Благодаря этому у нас есть все, чтобы массово конвертировать Excels в Jsons.
Я оставлю код, чтобы вы могли использовать его и модифицировать.
# python3 -m pip install --upgrade xlrd
# python3 -m pip install --upgrade pandas
import pandas as pd
import os
list_of_files = os.listdir("/files/")
if len(list_of_files) > 0:
print("Начинаем с " + str(len(list_of_files)) + " Files")
for x in list_of_files:
if(x != ".DS_Store"):
data = pd.read_excel("/files/"+ x,usecols="A,E:F", encoding = 'utf8')
data.to_json(path_or_buf= x+'.json',orient='records')
else:
print("Готово")
Code language: PHP (php)