Питон в реальной жизни

9 ноября. Модуль json

JSON - это текстовый формат обмена данными. Условно можно представить, чо это формат, в котором бывают:

Подробнее можно почитать, например, в википедии (но не факт, что от этого станет понятнее).

Давайте для примера посмотрим на json-файл с информацией о нашей школе (откроется в новом окне, скорее всего вам браузер его покажет довольно красиво, а не просто как текстовый файл).

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

import json
with open(INPUTFILENAME, encoding="utf-8") as fin:
    data = json.loads(fin.read())

with open(RESULTFILENAME, "w", encoding="utf-8") as fout:
    print(json.dumps(data), file=fout)
INPUTFILENAME и RESULTFILENAME - здесь должно быть указано имя файла. Параметр encoding="utf-8" нужен, если ваш файл в кодировке utf-8 (де-факто сегодня это стандарт для кодировки файлов, который стоит использовать). При этом на Портале открытых данных города Москвы по крайней мере некоторые dataset'ы выложены в кодировке ANSI-1251, для работы с ними нужно указывать encoding="cp1251" При записи полезно указать еще два параметра: То есть блок записи должен выглядеть как-то так:
with open(RESULTFILENAME, "w", encoding="utf-8") as fout:
    print(json.dumps(data, ensure_ascii=False, indent=4), file=fout)

Упражнения

Победители и призеры олимпиад

Давайте посмотрим на набор данных Победители и призеры олимпиад. Сделайте следующее:

Московские школы

Посмотрите на датасет Образовательные учреждения города Москвы.

Общественное питание

Посмотрите на датасет Общественное питание в Москве

Давайте попробуем посмотреть, как пандемия повлияла на ресторанный бизнес.

"Я знаю пять имен девочек, я знаю пять имен мальчиков"