Разбор данных JSON в Python3
JSON (JavaScript Object Notation) — это легковесный формат обмена данными.
Если вы еще не понимаете JSON, вы можете сначала прочитать нашУчебник по JSON。
Python3 может использовать модуль json для кодирования и декодирования данных JSON. Он содержит две функции:
- json.dumps(): Кодирует данные.
- json.loads(): Декодирует данные.

В процессе кодирования/декодирования json встроенные типы Python и типы json преобразуются друг в друга. Конкретные соответствия преобразований следующие:
Таблица соответствия преобразования типов Python в JSON при кодировании:
| Python | JSON |
|---|---|
| dict | объект |
| list, tuple | array |
| str | string |
| int, float, перечисления, производные от int и float | число |
| True | истина |
| False | false |
| Отсутствует | null |
Таблица соответствия преобразования при декодировании JSON в типы Python:
| JSON | Python |
|---|---|
| объект | dict |
| array | list |
| string | str |
| число (int) | int |
| число (real) | float |
| истина | True |
| false | False |
| null | Отсутствует |
Примеры json.dumps и json.loads
В следующем примере демонстрируется преобразование структур данных Python в JSON:
Пример (Python 3.0+)
Выполнение приведённого выше кода выводит следующий результат:
Python 原始数据: {'no': 1, 'name': 'Example', 'url': 'https://www.example.com'}
JSON 对象: {"no": 1, "name": "Example", "url": "https://www.example.com"}
Из результата вывода видно, что после кодирования простые типы очень похожи на свой исходный вывод repr().
Продолжая предыдущий пример, мы можем преобразовать строку, закодированную в JSON, обратно в данные Python:
Пример (Python 3.0+)
Выполнение приведённого выше кода выводит следующий результат:
Python 原始数据: {'name': 'Example', 'no': 1, 'url': 'http://www.example.com'}
JSON 对象: {"name": "Example", "no": 1, "url": "http://www.example.com"}
data2['name']: Example
data2['url']: http://www.example.com
Если вы имеете дело с файлом, а не со строкой, можно использоватьjson.dump()иjson.load()для кодирования и декодирования данных JSON. Например:
Пример (Python 3.0+)
Для получения дополнительной информации обратитесь к:https://docs.python.org/3/library/json.html Другие расширения