Модуль JSON в Python

JSON расшифровывается как JavaScript Object Notation и представляет собой легковесный формат для хранения и передачи данных. JSON часто используется, когда данные отправляются с сервера на веб-страницу.

В Python есть встроенный модуль json, который позволяет нам работать с данными JSON.

import json

Типы данных JSON

Объект JSON похож на словарь Python, но имеет следующие отличия:

  • Ключи JSON всегда являются строками (string).
  • Строки всегда заключаются в двойные кавычки.
  • Логическое значение JSON начинается со строчных букв.
  • null является эквивалентом Python None в JSON.

Типы данных, которые поддерживает JSON:

  • String (Строка)
  • Number (Число)
  • boolean (Логическое значение)
  • null
  • Object (Объект)
  • Array (Массив)

Пример:

{
  "name": "Charles",
  "age": 33,
  "has_hair": false,
  "hobbies": ["photography", "running"],
  "appearance": {
    "eyes": "brown",
    "hair_color": null
  }
}

Метод JSON loads()

С помощью метода json.loads вы можете разобрать (parse) объект JSON и преобразовать его в словарь Python:

import json

# Строка JSON для разбора
json_person = '{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
# Разбор строки JSON в словарь Python
python_person = json.loads(json_person)
python_person
{'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
type(python_person)
<class 'dict'>
# Доступ к значению словаря с помощью метода get
python_person.get("name")
'Charles'

Метод JSON dumps()

Обратный процесс. Метод dumps() преобразует объект Python в строку JSON:

import json

# Словарь Python для преобразования
python_person = {'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
# Преобразование объекта Python в строку JSON
json_person = json.dumps(python_person)

json_person
'{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
type(json_person)
<class 'str'>

Чтение и запись файлов JSON

Чтение файла JSON

import json
# Чтение файла JSON
with open("filename.json", "r") as f:
    json_content = json.loads(f.read())

# Примечание: эта строка кажется избыточной - json_content уже разобран
json.loads(json_content)
{'name': 'Charles', 'age': 33, 'has_hair': False}

Запись файла JSON

import json

person = {'name': 'Charles', 'age': 33}

# Запись словаря Python в файл JSON
with open("filename.json", "w") as f:
    f.write(json.dumps(person))

Связанные ссылки

Morty Proxy This is a proxified and sanitized view of the page, visit original site.