В этом руководстве вы научитесь анализировать, читать и писать JSON на Python с помощью примеров. Также вы научитесь конвертировать JSON в dict и распечатывать его.
JSON ( J AVA S cript O ▪ Таблица N otation) является популярным форматом данных , используемым для представления структурированных данных. Обычно данные между сервером и веб-приложением передаются и принимаются в формате JSON.
В Python JSON существует в виде строки. Например:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Также распространено хранить объект JSON в файле.
Импортировать модуль json
Для работы с JSON (строкой или файлом, содержащим объект JSON) вы можете использовать jsonмодуль Python . Вам необходимо импортировать модуль, прежде чем вы сможете его использовать.
import json
Разбираем JSON в Python
jsonМодуль позволяет легко разобрать JSON строки и файлы , содержащие объект JSON.
Пример 1: Python JSON для диктовки
Вы можете проанализировать строку JSON с помощью json.loads()метода. Метод возвращает словарь.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Здесь person - это строка JSON, а person_dict - это словарь.
Пример 2: Python читает файл JSON
Вы можете использовать json.load()метод для чтения файла, содержащего объект JSON.
Предположим, у вас есть файл с именем, person.jsonкоторый содержит объект JSON.
("name": "Bob", "languages": ("English", "Fench") )
Вот как можно разобрать этот файл:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Здесь мы использовали open()функцию для чтения файла json. Затем файл анализируется с использованием json.load()метода, который дает нам словарь с именем data.
Если вы не знаете, как читать и записывать файлы в Python, мы рекомендуем вам проверить ввод-вывод файлов Python.
Python преобразовать в строку JSON
Вы можете преобразовать словарь в строку JSON с помощью json.dumps()метода.
Пример 3: преобразовать dict в JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Вот таблица, показывающая объекты Python и их эквивалентное преобразование в JSON.
| Python | Эквивалент JSON |
|---|---|
dict | объект |
list, tuple | массив |
str | строка |
int, float,int | количество |
True | правда |
False | ложный |
None | значение NULL |
Запись JSON в файл
Чтобы записать JSON в файл на Python, мы можем использовать json.dump()метод.
Пример 4: Запись JSON в файл
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
В приведенной выше программе мы открыли файл с именем person.txtв режиме записи с использованием 'w'. Если файл еще не существует, он будет создан. Затем json.dump()преобразуется person_dictв строку JSON, которая будет сохранена в person.txtфайле.
Когда вы запустите программу, person.txtфайл будет создан. Внутри файла есть следующий текст.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python довольно печатный JSON
Для анализа и отладки данных JSON нам может потребоваться распечатать их в более удобочитаемом формате. Это может быть сделано путем передачи дополнительных параметров indentи sort_keysк json.dumps()и json.dump()методу.
Пример 5: Python красиво печатает JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Когда вы запустите программу, вывод будет:
("languages": "английский", "name": "Bob", "numbers": (2, 1.6, null))
В приведенной выше программе мы использовали 4пробелы для отступов. И ключи отсортированы в порядке возрастания.
Кстати, значение отступа по умолчанию - None. По умолчанию sort_keys имеет значение False.
Рекомендуемая литература:
- Python JSON в CSV и наоборот
- Python XML в JSON и наоборот
- Python simplejson








