Как мы все знаем, преобразование данных — обычная задача в Python. JSON (нотация объектов JavaScript) — это облегченный формат обмена данными, обычно используемый для хранения данных и связи между веб-серверами и клиентами.

Мы можем использовать функции to_json() и json_normalize() или использовать различные модули, такие как json и simplejson, для преобразования кадра данных в файл JSON в Python.

Содержание

С помощью метода 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 снимок экрана указан ниже.

С помощью метода to_json()

С помощью 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_normalize()

С использованием модуля 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, был сделан следующий снимок экрана, чтобы проиллюстрировать результат.

С использованием модуля json

С помощью модуля 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.

С помощью модуля simplejson

Заключение

В этом руководстве по Python объясняется, как преобразовать фрейм данных в JSON в Python, используя четыре различных метода: функции to_json() и json_normalize(), а также модули json и simplejson.

Добавить комментарий