Чтение и запись файлов JSON в Python с помощью Pandas

Введение Pandas - одна из наиболее часто используемых библиотек Python для обработки и визуализации данных. Библиотека Pandas [https://pandas.pydata.org/] предоставляет классы и функции, которые можно использовать для эффективного чтения, управления и визуализации данных, хранящихся в различных форматах файлов. В этой статье мы будем читать и писать файлы JSON с помощью Python и Pandas. Что такое файл JSON? Нотация объектов JavaScript (JSON) - это формат данных, в котором данные хранятся в удобочитаемой форме. W

Вступление

Pandas - одна из наиболее часто используемых библиотек Python для обработки и визуализации данных. Библиотека Pandas предоставляет классы и функции, которые можно использовать для эффективного чтения, управления и визуализации данных, хранящихся в различных форматах файлов.

В этой статье мы будем читать и писать файлы JSON с помощью Python и Pandas.

Что такое файл JSON?

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

Хотя он был получен из JavaScript, он не зависит от платформы и является широко распространенным и используемым форматом - чаще всего в REST API.

Создание файла JSON

Чтобы создавать файлы JSON с помощью Python, данные должны храниться определенным образом. Есть несколько способов сохранить эти данные с помощью Python. Некоторые методы обсуждались в этой статье .

Сначала мы создадим файл, используя ядро Python, а затем прочитаем и запишем в него через Pandas.

Создание данных JSON с помощью вложенных словарей

В Python для создания данных JSON можно использовать вложенные словари. Каждый элемент во внешнем словаре соответствует столбцу в файле JSON.

Ключом каждого элемента является заголовок столбца, а значением - другой словарь, состоящий из строк в этом конкретном столбце. Давайте создадим словарь, который можно использовать для создания файла JSON, в котором хранится запись вымышленных пациентов:

 patients = { 
 "Name":{"0":"John","1":"Nick","2":"Ali","3":"Joseph"}, 
 "Gender":{"0":"Male","1":"Male","2":"Female","3":"Male"}, 
 "Nationality":{"0":"UK","1":"French","2":"USA","3":"Brazil"}, 
 "Age" :{"0":10,"1":25,"2":35,"3":29} 
 } 

В приведенном выше сценарии первый элемент соответствует столбцу Name Значение элемента состоит из словаря, в котором элементы словаря представляют собой строки. Ключи элементов внутреннего словаря соответствуют порядковым номерам строк, где значения представляют значения строк.

Поскольку это может быть немного сложно визуализировать просто так, вот визуальное представление:

пациентывизуализированы{.ezlazyload}

В Name первая запись сохраняется в 0-м индексе, где значением записи является John , аналогично, значение, сохраненное во второй строке Name - это Nick и так далее.

Создание данных JSON с помощью списков словарей

Другой способ создания данных JSON - через список словарей. Каждый элемент в списке состоит из словаря, а каждый словарь представляет собой строку. Такой подход более читабелен, чем использование вложенных словарей.

Создадим список, который можно использовать для создания файла JSON, в котором хранится информация о разных автомобилях:

 cars = [ 
 {"Name":"Honda", "Price": 10000, "Model":2005, "Power": 1300}, 
 {"Name":"Toyota", "Price": 12000, "Model":2010, "Power": 1600}, 
 {"Name":"Audi", "Price": 25000, "Model":2017, "Power": 1800}, 
 {"Name":"Ford", "Price": 28000, "Model":2009, "Power": 1200}, 
 
 ] 

Каждый элемент словаря соответствует строке в файле JSON. Например, первый элемент в первом словаре хранит значение Honda в столбце Name Точно так же значение Price в первой строке будет 10000 и так далее.

Запись данных в файл JSON через Python

С помощью нашего вложенного словаря и списка словарей мы можем хранить эти данные в файле JSON. Для этого мы будем использовать json и метод dump() :

 import json 
 with open('E:/datasets/patients.json', 'w') as f: 
 json.dump(patients, f) 
 
 with open('E:/datasets/cars.json', 'w') as f: 
 json.dump(cars, f) 

Теперь у нас есть два файла JSON - patients.json и cars.json . Следующим шагом будет чтение этих файлов через библиотеку Pandas.

Если вы хотите узнать больше о чтении и записи JSON в файл в Core Python , мы вам поможем!

Чтение файлов JSON с помощью Pandas

Чтобы прочитать файл JSON через Pandas, мы read_json() и передадим ему путь к файлу, который мы хотим прочитать. Метод возвращает Pandas DataFrame котором данные хранятся в виде столбцов и строк.

Хотя сначала нам нужно установить Pandas:

 $ pip install pandas 

Чтение JSON из локальных файлов

Следующий сценарий читает patients.json файл из локального каталога системы и сохраняет результат в patients_df dataframe. Затем с помощью метода head() печатается заголовок фрейма данных:

 import pandas as pd 
 patients_df = pd.read_json('E:/datasets/patients.json') 
 patients_df.head() 

Запуск этого кода должен дать:
фрейм данныхпациентов{.ezlazyload}

Точно так же следующий скрипт считывает cars.json из локальной системы, а затем вызывает метод head() в cars_df для печати заголовка:

 cars_df = pd.read_json('E:/datasets/cars.json') 
 cars_df.head() 

Запуск этого кода должен дать:
фрейм данныхавтомобилей{.ezlazyload}

Чтение JSON из удаленных файлов

Метод read_json() не ограничивается только чтением локальных файлов. Вы также можете читать файлы JSON, расположенные на удаленных серверах. Вам просто нужно передать путь к удаленному файлу JSON для вызова функции.

Давайте прочитаем и распечатаем заголовок набора данных Iris - действительно популярного набора данных, содержащего информацию о различных цветках ириса:

 import pandas as pd 
 iris_data = pd.read_json("https://raw.githubusercontent.com/domoritz/maps/master/data/iris.json") 
 iris_data.head() 

Выполнение этого кода должно дать нам:
фрейм данных растенияирис{.ezlazyload}

Запись файлов данных JSON через Pandas

Чтобы преобразовать фрейм данных Pandas в файл JSON, мы используем to_json() в фрейме данных и передаем путь к файлу, который скоро будет создан в качестве параметра.

Давайте создадим файл JSON из tips , который включен в библиотеку Seaborn для визуализации данных.

Во-первых, давайте установим Seaborn:

 $ pip install seaborn 

Затем давайте импортируем его и загрузим подсказки в набор данных:

 import seaborn as sns 
 
 dataset = sns.load_dataset('tips') 
 dataset.head() 

Вот как выглядит набор данных:
заголовок набора данныхсоветов{.ezlazyload}

load_dataset() возвращает DataFrame данных Pandas, поэтому загрузка такого набора данных позволяет нам просто вызвать to_json() для его преобразования.

Как только мы получим набор данных, давайте сохраним его содержимое в файле JSON. Мы создали для этого каталог datasets

 dataset.to_json('E:/datasets/tips.json') 

tips.json E:/datasets , вы должны увидеть tips.json. Открывая файл, мы видим JSON, который соответствует записям в фрейме данных Pandas, содержащем набор данных tips

 { 
 "total_bill":{ 
 "0":16.99, 
 "1":10.34, 
 "2":21.01, 
 "3":23.68, 
 "4":24.59, 
 "5":25.29, 
 ... 
 } 
 "tip":{ 
 "0":1.01, 
 "1":1.66, 
 "2":3.5, 
 "3":3.31, 
 "4":3.61, 
 "5":4.71, 
 ... 
 } 
 "sex":{ 
 "0":"Female", 
 "1":"Male", 
 "2":"Male", 
 "3":"Male", 
 "4":"Female", 
 "5":"Male", 
 ... 
 } 
 "smoker":{ 
 "0":"No", 
 "1":"No", 
 "2":"No", 
 "3":"No", 
 "4":"No", 
 "5":"No", 
 ... 
 } 
 ... 

Заключение

JSON - это широко используемый формат для хранения данных и обмена ими между клиентом и сервером. Разработчики часто используют этот формат вместо таких форматов, как XML, из-за его легкости и удобочитаемости.

В этой статье мы рассмотрели, как читать и записывать файлы JSON с помощью популярной библиотеки Python Pandas - от локальных до удаленных файлов.

comments powered by Disqus