Как читать JSON-файл в Python

Как читать JSON-файл в Python?

Привет всем! Сегодня мы попробуем разобраться: что такое JSON и как читать JSON-файл в Python?

Для начала — немного фактов:

  • JSON расшифровывается как JavaScript Object Notation
  • Это формат обмена данными, в котором вы можете передавать данные с клиента на сервер и с сервера на клиент
  • Он также используется для связи между приложениями
  • JSON чрезвычайно важен для разработки приложений, особенно когда вы работаете с API Rest
  • Он основан на подмножестве Java Script
  • Это легко читать и писать

С теорией познакомились, а теперь узнаем основные правила синтаксиса при работе с JSON-форматом:

  • JSON использует пары ключ-значение — {«name»: «Вася»}
  • JSON использует двойные кавычки вокруг ключа

Обычно в обучалках рассказывают о коллективе с данными по зарплате, месту проживания и все такое прочее. Не будем нарушать традицию, и представим себе коллектив, состоящий из 5 сотрудников: Вася, Саша, Петя, Даша, Маша. Каждый сотрудник получает определенную зарплату, а значит — мы можем составить свой JSON-файл (назовем файл personal.json), который и будет представлять собой список сотрудников + их зарплату:

{
"personal" :   [
{
"name" :   "Вася" ,
"salary" :   5000
} ,
{
"name" :   "Саша" ,
"salary" :   6000
} ,
{
"name" :   "Петя" ,
"salary" :   9000
} ,
{
"name" :   "Даша" ,
"salary" :   10000
},
{
"name" :   "Маша" ,
"salary" :   11000
}
]
}

как видно — поле name — отвечает за имя сотрудника, а поле salary — за уровень зарплаты, а вот само название этого массива данных — personal (указывается в самом верху). Файл с данными у нас есть, но как его читать? Для этого посмотрим на код ниже:
import json #Подключаем библиотеку, отвечающую за работу с JSON

with open(‘personal.json’, ‘r’, encoding=’utf-8′) as f: #открываем файл personal.json и указываем его кодировку — что бы можно было работать с русскими буквами
text = json.load(f) #загоняем в переменную все, что получилось в результате работы библиотеки
print(text) #выводим результат на экран

Если вы запустите код — то получите на экране нечто вроде:
{‘personal’: [{‘name’: ‘Вася’, ‘salary’: 5000}, {‘name’: ‘Саша’, ‘salary’: 6000}, {‘name’: ‘Петя’, ‘salary’: 9000}, {‘name’: ‘Даша’, ‘salary’: 10000}, {‘name’: ‘Маша’, ‘salary’: 11000}]}

Согласитесь — читать и разбирать подобные данные крайне сложно. Для упрощения работы в подобном случае часто используют библиотеку pprint, которая окультуривает выдачу в подобных случаях. В этом случае наш код будет выглядеть так:

import json #подключили библиотеку для работы с json
from pprint import pprint #подключили Pprint для красоты выдачи текста
with open('personal.json', 'r', encoding='utf-8') as f: #открыли файл с данными
text = json.load(f) #загнали все, что получилось в переменную
pprint(text) #вывели результат на экран

В результате выдача выглядит следующим образом:

{'personal': [{'name': 'Вася', 'salary': 5000},
{'name': 'Саша', 'salary': 6000},
{'name': 'Петя', 'salary': 9000},
{'name': 'Даша', 'salary': 10000},
{'name': 'Маша', 'salary': 11000}]}

А теперь выведем данные в чистом виде — имя сотрудника + зарплата. Тогда код буде выглядеть так:

import json #Подключили библиотеку
with open('personal.json', 'r', encoding='utf-8') as f: #открыли файл
text = json.load(f) #загнали все из файла в переменную
print(text) #вывели результат на экран
for txt in text['personal']: #создали цикл, который будет работать построчно
print(txt['name'], ':', txt['salary']) #и выводим на экран все, что в значении ключей name и salary

Собственно … можно было бы сказать что все, на сегодня хватит, но в завершении расскажу о том, как читать не файлы json, а строки. Например, у нас будет json-строка:
stroke = ‘{«food»: «banana»}’
Если мы попробуем вывести ее на экран, то получим:
{«food»: «banana»} — что в целом доносит суть, но не соответствует правилам 🙂 Для вывода json-строки используется функция loads. В виде кода это выглядит следующим образом:

import json #подключаем библиотеку для работы с json
stroke = '{"food": "banana"}' #json-строка
stroke_s = json.loads(stroke) #загоняем в переменную результат чтения json-строки
print(stroke_s) #выводим результат на экран

На этом — все 🙂 Спасибо за внимание! И да — как записывать в json-файл мы разберемся чуть позднее 🙂
Есть вопросы? Задавайте на почту, или пишите в Телеграм 🙂

UPD: видео подоспело 🙂

UPD: А вот тут доступен текст о том, как удалить запись из json-файла. Вдруг пригодится?

Support the Blog!

Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️

PayPal Logo Donate via PayPal

Revolut Logo Donate via Revolut