Python JSON: чтение, запись, анализ JSON (с примерами)

В этом руководстве вы научитесь анализировать, читать и писать 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

Интересные статьи...