JSON — это читаемый человеком текстовый формат данных. Он не зависит от языка и используется для обмена данными между приложениями.В этой статье мы объясним, как анализировать данные JSON в Python.
Python JSON
Модуль json позволяет кодировать и декодировать данные JSON является частью стандартной библиотеки Python.
JSON — это строка, представляющая данные. Кодирование или сериализация означает преобразование объекта Python в строку JSON, которую можно сохранить в файле или передать по сети. Декодирование или десериализация — обратный процесс кодирования, когда строка JSON преобразуется в объект Python.
Ниже приведена таблица, показывающая объекты Python и их эквивалентное представление JSON:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float | number |
True | true |
False | false |
None | null |
Для работы с JSON просто импортируйте модуль вверху файла:
import json
Кодировка JSON в Python
Модуль json имеет два метода для кодирования объектов Python в JSON отформатированных строк: dump() и dumps().
Метод dump() отправляет вывод в файл-подобный объект. Он принимает два позиционных аргумента: объект, который должен быть закодирован, и объект в виде файла. Вот пример:
data = { "country": "Russia", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } } with open("file.json", "w") as file: json.dump(data, file)
Если вы запустите скрипт, он создаст файл с именем file.json:
{"country": "Russia", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}
Метод dumps() работает так же, как и dump(), но вместо того, чтобы послать вывод в файл-подобный объект, он возвращает строку:
data = { "country": "Russia", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } } json.dumps(data)
'{"country": "Russia", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}'
Оба метода принимают одинаковые ключевые аргументы. Например, если вы анализируете или отлаживаете данные JSON, вы можете указать уровень отступа:
data = { "country": "Russia", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } } print(json.dumps(data, indent=2))
{ "country": "Russia", "vehicle": { "name": "Volkswagen", "model": "T-Roc" } }
Расшифровка JSON в Python
Для того, чтобы преобразовать JSON закодированные данные в объекты Python, использовать методы load() и loads().
Метод load() считывает структуру JSON из файла типа объекта и преобразует его в объект Python.
Допустим, у нас есть следующий файл 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, который вы можете использовать в своем коде:
<class 'list'>
Метод 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.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.