Вставить json в excel на питоне
Обновлено: 04.07.2024
В этом руководстве мы будем обсуждать JSON в Python: как кодировать и декодировать данные. Прежде чем начать работу с json-модулем Python, мы сначала обсудим данные JSON.
Аббревиатура JSON – это нотация объектов JavaScript. Согласно Википедии, JSON – это формат файла открытого стандарта, который использует читаемый человеком текст для передачи объектов данных, состоящих из пар атрибут-значение и типов данных массива (или любого другого сериализуемого значения).
JSON – очень распространенный формат данных, используемый для асинхронной связи между браузером и сервером. Правила синтаксиса для JSON приведены ниже:
- Данные – это просто пара имени и значения.
- Данные, объект и массивы разделяются запятыми.
- Фигурные скобки удерживают объект.
- Квадрат содержит массив.
json.dumps()
В этом разделе мы узнаем, как преобразовать данные Python в данные JSON. Задача очень простая. Сначала импортируйте модуль json. Затем используйте функцию json.dumps() для декодирования данных json. Ниже приведен простой пример функции json.dumps() в Python.
Вы получите такой результат.
Pretty print
Как вы можете видеть в приведенном выше примере, для json pretty print мы должны передать дополнительную переменную indent функции json dumps. Например, json.dumps (nested_list, indent = 2).
json.loads()
Вы можете легко преобразовать данные JSON в объекты Python. Используя функцию json.loads(), вы можете просто преобразовать данные JSON в данные Python. Итак, посмотрите следующий пример кода parse json, чтобы понять функцию загрузки.
Ниже приведен результат работы примера программы синтаксического анализа json на Python.
Преобразование данных JSON
В предыдущих двух разделах вы могли заметить, что список Python преобразуется в данные JSONArray, а словарь Python становится JSONObject. Итак, какой объект Python по умолчанию преобразован в объект JSON, показан в таблице ниже.
Кроме того, если вы конвертируете JSONArray, вы получите список. Так что здесь тоже есть некоторые правила. Итак, в следующих таблицах показан тип данных JSON, которые преобразуются в данные.
JSON является синтаксисом для хранения и обмена данными. JSON — это текст, написанный в стиле объекта JavaScript.
JSON в Python
Python имеет встроенный модуль json , который может использоваться для работы с данными JSON.
Конвертация из JSON в Python
Если у вас есть строка JSON, вы можете провести над ней парсинг с помощью метода json.loads () .
Как результат, будет словарь python.
Конвертируем из JSON в Python:
Конвертировать из Python в JSON
Если у вас есть объект Python, вы можете преобразовать его в строку JSON с помощью метода json.dumps() .
Вы можете преобразовать следующие типов объекты Python в строки JSON:
Конвертируем объекты Python в строки JSON и выведите значения:
Когда вы конвертируете из Python в JSON, объекты Python преобразуются в эквивалент JSON:
Python | JSON |
---|---|
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
Конвертируйте объект Python, содержащий все типы конвертируемых данных:
Как конвертировать кириллицу
Если в данных Python есть символы кириллицы, метод json.dumps() преобразует их с кодировкой по умолчанию. Что бы сохранить кириллицу используйте параметр ensure_ascii=False
Форматирование результата
В приведенном выше примере выводится строка JSON, но читать ее не так просто, без отступов и переносов строк.
У метода json.dumps() есть параметры, облегчающие чтение результата.
Используем параметр indent для определения количества отступов:
Вы также можете определить разделители, значение которых по умолчанию — , , : , где запятая и пробел используются для разделения каждого объекта, а двоеточие и пробел — для разделения ключей и значений.
Используем параметр separators чтобы изменить разделитель по умолчанию:
Pandas можно использовать для чтения и записи файлов Excel с помощью Python. Это работает по аналогии с другими форматами. В этом материале рассмотрим, как это делается с помощью DataFrame.
Помимо чтения и записи рассмотрим, как записывать несколько DataFrame в Excel-файл, как считывать определенные строки и колонки из таблицы и как задавать имена для одной или нескольких таблиц в файле.
Установка Pandas
Для начала Pandas нужно установить. Проще всего это сделать с помощью pip .
Если у вас Windows, Linux или macOS:
В процессе можно столкнуться с ошибками ModuleNotFoundError или ImportError при попытке запустить этот код. Например:
В таком случае нужно установить недостающие модули:
Запись в файл Excel с python
Будем хранить информацию, которую нужно записать в файл Excel, в DataFrame . А с помощью встроенной функции to_excel() ее можно будет записать в Excel.
Сначала импортируем модуль pandas . Потом используем словарь для заполнения DataFrame :
Ключи в словаре — это названия колонок. А значения станут строками с информацией.
Теперь можно использовать функцию to_excel() для записи содержимого в файл. Единственный аргумент — это путь к файлу:
Стоит обратить внимание на то, что в этом примере не использовались параметры. Таким образом название листа в файле останется по умолчанию — «Sheet1». В файле может быть и дополнительная колонка с числами. Эти числа представляют собой индексы, которые взяты напрямую из DataFrame.
Поменять название листа можно, добавив параметр sheet_name в вызов to_excel() :
Также можно добавили параметр index со значением False , чтобы избавиться от колонки с индексами. Теперь файл Excel будет выглядеть следующим образом:
Запись нескольких DataFrame в файл Excel
Также есть возможность записать несколько DataFrame в файл Excel. Для этого можно указать отдельный лист для каждого объекта:
Здесь создаются 3 разных DataFrame с разными названиями, которые включают имена сотрудников, а также размер их зарплаты. Каждый объект заполняется соответствующим словарем.
Объединим все три в переменной salary_sheets , где каждый ключ будет названием листа, а значение — объектом DataFrame .
Дальше используем движок xlsxwriter для создания объекта writer . Он и передается функции to_excel() .
Перед записью пройдемся по ключам salary_sheets и для каждого ключа запишем содержимое в лист с соответствующим именем. Вот сгенерированный файл:
Можно увидеть, что в этом файле Excel есть три листа: Group1, Group2 и Group3. Каждый из этих листов содержит имена сотрудников и их зарплаты в соответствии с данными в трех DataFrame из кода.
Параметр движка в функции to_excel() используется для определения модуля, который задействуется библиотекой Pandas для создания файла Excel. В этом случае использовался xslswriter , который нужен для работы с классом ExcelWriter . Разные движка можно определять в соответствии с их функциями.
В зависимости от установленных в системе модулей Python другими параметрами для движка могут быть openpyxl (для xlsx или xlsm) и xlwt (для xls). Подробности о модуле xlswriter можно найти в официальной документации.
Наконец, в коде была строка writer.save() , которая нужна для сохранения файла на диске.
Чтение файлов Excel с python
По аналогии с записью объектов DataFrame в файл Excel, эти файлы можно и читать, сохраняя данные в объект DataFrame . Для этого достаточно воспользоваться функцией read_excel() :
Есть много способов преобразовать файл Excel в данные JSON в Python. В этом руководстве мы рассмотрим два модуля python для преобразования файлов Excel в JSON:
Преобразование файла Excel в файлы JSON с использованием модуля excel2json-3
Это очень простой модуль для преобразования файлов Excel в файлы JSON. Содержимое таблицы Excel преобразуется в строку JSON и сохраняется в файле.
Имя файлов происходит от имен листов Excel. Итак, если есть два листа с именами «Numbers» и «Cars», файлы JSON будут называться Numbers.json и Cars.json соответственно.
Модуль поддерживает преобразование файлов в форматах .xls и .xlsx. Мы можем прочитать файл Excel из файловой системы, а также URL-адрес.
Мы можем установить этот модуль с помощью команды PIP.
В нашем примере я создал файл Excel с именем «records.xlsx», имеющий три листа.
Вот сценарий для преобразования этого файла Excel в файлы JSON.
Скрипт создает три файла JSON.
Если вам нужно прочитать файл Excel по URL-адресу, используйте функцию convert_from_url().
Ограничения модуля excel2json-3
- Плагин имеет очень ограниченные возможности.
- Нет возможности пропустить какой-либо лист, строки или столбцы. Это затрудняет использование файлов Excel большего размера.
- JSON сохраняется в файлы. В большинстве случаев мы хотим преобразовать в JSON и использовать его в нашей программе, а не сохранять в виде файла.
- Целые числа преобразуются в числа с плавающей запятой.
Преобразование листа Excel в строку JSON с помощью модуля Pandas
Модуль Pandas предоставляет функции для чтения таблиц Excel в объект DataFrame. Есть много опций для указания заголовков, чтения определенных столбцов, пропуска строк и т.д.
Мы можем использовать функцию to_json() для преобразования объекта DataFrame в строку JSON. Давайте посмотрим на простой пример, чтобы прочитать лист «Сотрудники» и преобразовать его в строку JSON.
Итак, данные JSON создаются с ориентацией столбцов. Если вы хотите создать строку JSON с построчной ориентацией, передайте значение параметра «orient» как «records».
Заключение
Если у вас есть простой и хорошо структурированный файл Excel, и вы хотите преобразовать его в файлы JSON, используйте модуль excel2json-3. Но если вам нужен больший контроль над тем, как данные Excel читаются и конвертируются в строку JSON, используйте модуль pandas.
Читайте также: