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