Простое руководство по работе с файлами JSON в Python.

Привет всем, в моей прошлой статье мы говорили о текстовых файлах и мы узнали, как выполнять операции чтения и записи. Даже если текстовые файлы в некоторых случаях являются отличным способом постоянного хранения данных, у них есть несколько важных недостатков. Одна из них заключается в том, что мы не можем хранить объекты или данные не хранятся в структурированном виде. Эти недостатки были преодолены стандартом JSON. В оставшейся части статьи мы покажем, как читать и записыватьданные с помощью файлов JSON, поговорим о сериализации и десериализации и, наконец, построим мини- проект. У нас много дел, так что давайте начнем.

Описание

JSON (происходит от JavaScript Object Notation) быстро стать стандартным способом не только для хранения данных, но и для обмена данными через Интернет. Большинство API используют JSON для доставки данных. Самая важная причина широкого распространения стандарта JSON заключается в том, что он легко понятен людям и машинам. Файл JSON имеет следующую форму:

{
   "first_name" : "John",
   "last_name" : "Doe",
   "semester" : 2,
   "curent_courses" : ["Algorithms", "Data Structures", "Databases"]
}

Как видно из приведенного выше примера, файл JSON выглядит как словарь в Python и поддерживает примитивные типы данных, такие как строки, целые числа, списки.

Чтобы прочитать и записать данные в файл JSON, мы должны открыть его, как текстовые файлы, о которых мы говорили в прошлой статье. Таким образом, мы можем использовать их с блоком open(filename, mode) для чтения и записи файлов.

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

Записать данные в файл

Как мы упоминали ранее в этой статье, чтобы добавить новые данные в файл, мы должны открыть его с помощью метода open(). Чтобы сохранить наши данные в файле JSON, мы можем использовать метод dump(object, file). Этот метод преобразует (сериализует) объект Python в строку JSON. Под термином сериализация мы подразумеваем преобразование данных в последовательность байтов для хранения или передачи через Интернет. Этот процесс преобразует объекты Python в эквиваленты JSON следующим образом:

Python      ->   JSON
dict             Object
list, tuple      Array
str              String
int, float       Number
True             true
False            false
None             null

Метод dump() принимает два параметра: объект Python, который нам нужно сохранить, и имя файла. В следующем примере у нас есть словарь с данными студента, и мы пытаемся сохранить их в файле JSON. Давайте посмотрим код.

Если мы выполним приведенный выше код, мы создадим новый файл JSON, содержащий сохраненные данные.

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

Чтобы прочитать данные из файла JSON, мы можем использовать метод load(filename). Этот метод принимает в качестве параметра имя файла и преобразует (десериализует) данные JSON в объекты Python. Процесс десериализации является обратным процессу сериализации и выполняется следующим образом:

JSON     ->   Python        
Object        dict             
Array         list, tuple      
String        str              
Number        int, float       
true          True             
false         False               
null          None

Теперь давайте прочитаем данные студента из предыдущего примера.

В приведенном выше примере мы используем метод load() для чтения данных из файла, а затем можем обрабатывать данные как словарь.

Мини проект

Предположим, мы хотим создать простое приложение, которое берет данные о студентах и ​​сохраняет их в файле. Пользователь может вставлять данные в приложение, сохранять их и извлекать. Я рекомендую вам попробовать это самостоятельно, прежде чем читать мое решение.



Заключение

В этой статье мы говорили о файлах JSON в Python. Стандарт JSON оказывает большое влияние на то, как мы храним и обмениваемся данными в Интернете. В следующей статье мы поговорим об основных правилах, которым нужно следовать при написании «чистого»кода. А пока продолжайте программировать и продолжайте учиться. Спасибо за прочтение!

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку здесь.