
JSON — это текстовый формат данных, понятный человеку. Он не зависит от языка и используется для обмена данными между приложениями.
В этой статье мы объясним, как анализировать данные JSON в Python.
Python JSON
Модуль json , позволяющий кодировать и декодировать данные JSON, является частью стандартной библиотеки Python.
JSON — это строка, представляющая данные. Кодирование или сериализация означает преобразование объекта Python в строку JSON, которую можно сохранить в файле или передать по сети. Декодирование или десериализация — это процесс, обратный кодированию, при котором строка JSON преобразуется в объект Python.
Ниже приведена таблица, показывающая объекты Python и их эквивалентное представление JSON:
| Питон | JSON |
|---|---|
| дикт | объект |
| список, кортеж | множество |
| ул. | нить |
| int, float | число |
| Истинный | истинный |
| ЛОЖЬ | ЛОЖЬ |
| Никто | нулевой |
Для работы с JSON просто импортируйте модуль в начало вашего файла:
import json
Кодирование JSON в Python
Модуль json имеет два метода для кодирования объектов Python в строки формата JSON: dump() и dumps() .
Метод dump() отправляет выходные данные в файлоподобный объект. Он принимает два позиционных аргумента: кодируемый объект и файлоподобный объект. Вот пример:
data = { "country" : "Germany" , "vehicle" : { "name" : "Volkswagen" , "model" : "T-Roc" } } with open ( "file.json" , "w" ) as file : json . dump ( data , file )
Если вы запустите скрипт, он создаст файл с именем file.json :
файл.json
{ "country" : "Germany" , "vehicle" : { "name" : "Volkswagen" , "model" : "T-Roc" }}
Метод dumps() работает так же, как dump() , но вместо отправки вывода в файлоподобный объект он возвращает строку:
data = { "country" : "Germany" , "vehicle" : { "name" : "Volkswagen" , "model" : "T-Roc" } } json . dumps ( data )
'{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}'
Оба метода принимают одни и те же ключевые аргументы. Например, при анализе или отладке данных JSON может потребоваться указать уровень отступа:
data = { "country" : "Germany" , "vehicle" : { "name" : "Volkswagen" , "model" : "T-Roc" } } print ( json . dumps ( data , indent = 2 ))
{ "country": "Germany", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } }
Декодирование JSON в Python
Для преобразования данных в формате JSON в объекты Python используйте методы load() и loads() .
Метод load() считывает структуру JSON из файлового объекта и преобразует ее в объект Python.
Предположим, у нас есть следующий JSON-файл:
файл.json
[ { "userId" : 1 , "id" : 1 , "title" : "Meet with Lisa" , "completed" : true }, { "userId" : 1 , "id" : 2 , "title" : "Design a prototype" , "completed" : false } ]
Чтобы преобразовать данные JSON в представление Python, можно использовать что-то вроде этого:
import json with open ( 'file.json' ) as f : data = json . load ( f ) type ( data )
JSON преобразуется в список Python, который вы можете использовать в своем коде:
Метод loads() преобразует строку, содержащую документ JSON, в объект Python:
import json json_str = '{"userId": "1", "id": "1", "title": "Meet with Lisa", "completed": "True"}' print ( json . loads ( json_str ))
Строка преобразуется в словарь Python:
{'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'True'}
Вот более продвинутый пример, показывающий, как сделать запрос API и декодировать данные JSON:
import json import requests response = requests . get ( "https://jsonplaceholder.typicode.com/users" ) users = json . loads ( response . text ) print ( users )
Заключение
Мы расскажем вам, как кодировать и декодировать данные JSON в Python.
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.
Связанные руководства