Как мы все знаем, преобразование данных — обычная задача в Python. JSON (нотация объектов JavaScript) — это облегченный формат обмена данными, обычно используемый для хранения данных и связи между веб-серверами и клиентами.
Мы можем использовать функции to_json() и json_normalize() или использовать различные модули, такие как json и simplejson, для преобразования кадра данных в файл JSON в Python.
- С помощью метода to_json()
- С помощью json_normalize()
- С использованием модуля json
- С помощью модуля simplejson
- Заключение
С помощью метода to_json()
Самый простой и понятный метод преобразования DataFrame Pandas в JSON — это метод to_json(). Метод to_json() преобразует DataFrame в JSON.
Мы можем использовать параметр orient, который указывает формат, в котором кадр данных Pandas будет преобразован в строку JSON в Python. Это позволяет нам настраивать формат вывода в Python.
Вот пример преобразования фрейма данных Pandas в список JSON в Python:
import pandas as pd Population_data = pd.DataFrame({'name': ['USA', 'Brazil'], 'population': [336157983, 30216422446]}) json_population_data = Population_data.to_json(orient='records') print(json_population_data)
Вот что мы делаем: во-первых, мы импортируем библиотеку, которую собираемся использовать.
import pandas as pd
Создайте объект DataFrame с двумя столбцами, именем и населением, а также двумя строками данных, используя метод pd.DataFrame().
df = pd.DataFrame({'name': ['USA', 'Brazil'], 'population': [336157983, 30216422446]})
Метод to_json() в Pandas объекта DataFrame преобразуется в строку JSON с ориентацией «записи» в Python. Полученная строка JSON присваивается переменной json_data.
json_data = df.to_json(orient='records')
Выход:
[{"name":"USA","population":336157983},{"name":"Brazil","population":30216422446}]
После реализации кода в редакторе Pycharm снимок экрана указан ниже.
С помощью json_normalize()
Функцию json_normalize() из библиотеки Pandas можно использовать для объединения объекта JSON в DataFrame. Затем вы можете преобразовать DataFrame в JSON, используя метод to_json().
Вот пример:
import pandas as pd import json json_data = '[{"name":"USA","pop":336157983},{"name":"Brazil","pop":30216422446}]' df = pd.json_normalize(json.loads(json_data)) json_output = df.to_json(orient='records') print(json_output) print(type(json_output))
Мы используем json.load() для загрузки строки JSON в объект Python, а затем нормализуем ее в кадр данных Pandas в Python с помощью pd.json_normalize().
json_output = df.to_json(orient='records')
Вывод: я также печатаю тип выходных данных JSON, используя функцию type(), чтобы подтвердить, что мы успешно преобразовали фрейм данных в JSON.
[{"name":"USA","pop":336157983},{"name":"Brazil","pop":30216422446}]
На снимке экрана ниже показан вывод после выполнения кода редактора Pycharm.
С использованием модуля json
В Python есть модуль json, который предоставляет различные функции для кодирования и декодирования данных JSON. Мы можем преобразовать фрейм данных в строку JSON, используя функцию json.dumps().
Пример преобразования кадра данных в файл JSON в Python:
import pandas as pd import json df = pd.DataFrame({'name': ['USA', 'Brazil'], 'population': [336157983, 30216422446]}) json_data = json.dumps({'data': df.values.tolist(), 'columns': df.columns.tolist()}) print(json_data) print(type(json_data))
Код импортирует библиотеки pandas и json. Затем создайте объект DataFrame с двумя столбцами, именем и населением, а также двумя строками данных, представляющими США и Бразилию, с помощью функции pd.DataFrame() в Python.
json.dumps({'data': df.values.tolist(), 'columns': df.columns.tolist()})
- Мы используем метод to_dict() в Python для преобразования объекта DataFrame в словарь, где каждый ключ представляет имя столбца, а каждое значение представляет собой список значений столбца.
- Затем этот словарь преобразуется в новый словарь с двумя ключами: данными и столбцами. Ключ данных сопоставляется со списком списков, содержащих данные в DataFrame, а ключ столбца сопоставляется со списком имен столбцов.
- Наконец, метод json.dumps() используется для преобразования этого словаря в строку JSON.
Выход:
{"data": [["USA", 336157983], ["Brazil", 30216422446]], "columns": ["name", "population"]}
После того, как код был реализован в редакторе Pycharm, был сделан следующий снимок экрана, чтобы проиллюстрировать результат.
С помощью модуля simplejson
Модуль simplejson — это сторонний модуль Python, который обеспечивает более быстрый и эффективный способ кодирования и декодирования JSON в Python.
Это замена стандартного модуля json, обеспечивающая в некоторых случаях более высокую производительность в Python.
Примечание. Установите библиотеку simplejson, чтобы использовать функции для преобразования кадра данных Pandas в json в Python.
pip install simplejson
Полный код:
import pandas as pd import simplejson as json df = pd.DataFrame({'name': ['USA', 'Brazil'], 'population': [336157983, 30216422446]}) json_d = json.dumps(df.to_dict(orient='records')) print(json_d) print(type(json_d))
Выход:
[{"name": "USA", "population": 336157983}, {"name": "Brazil", "population": 30216422446}]
Ниже приведен снимок экрана, на котором запечатлен результат реализации кода редактора Pycharm.
Заключение
В этом руководстве по Python объясняется, как преобразовать фрейм данных в JSON в Python, используя четыре различных метода: функции to_json() и json_normalize(), а также модули json и simplejson.