В этом руководстве мы рассмотрим каким образом можно прочесть файлы json с помощью Python. Для этого нам поможет встроенная в Python библиотека - json.
Что такое JSON?
JSON (JavaScript Object Notation) - простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript.
Десериализация JSON
Десериализация JSON означает преобразование объектов JSON в соответствующие объекты Python. Для этого используются методы load()
/loads()
.
Если вы использовали данные JSON из другой программы или полученные в виде строкового формата JSON, то их можно легко десериализовать с помощью load()
/loads()
, который обычно используется для загрузки из строки.
Ниже приведена следующая таблица соответствий форматов:
JSON OBJECT | PYTHON OBJECT |
---|---|
object | dict |
array | list |
string | str |
null | None |
number (int) | int |
number (real) | float |
true | True |
false | False |
Синтаксис:
json.load(file object)
Аргументы:
file object
- принимает объект файла, анализирует данные JSON, заполняет словарь Python данными и возвращает результат.
Пример:
Сам файл JSON выглядит так:
{
"person": [
{
"name": "Vladislav",
"email": "volkodav228@inbox.ru",
"site": "notehunter.net",
"age": 23,
"country": "Russia"
},
{
"name": "Natalia",
"email": "natali228@mail.ru",
"site": "natali-best.net",
"age": 30,
"country": "Russia"
},
{
"name": "Alexander",
"email": "human1998@gmail.com",
"site": "sharia.com",
"age": 23,
"country": "Russia"
}
]
}
Открываем на чтение с помощью Python:
# Импортируем библиотеку
import json
# Открываем файл
with open(file='data.json', encoding='UTF-8', mode='r') as file:
# Читаем файл с помощью метода load()
data = json.load(file)
# Итерация по строкам JSON
for i in data.get('person'):
print(i)
Результат:
>>> {'name': 'Vladislav', 'email': 'volkodav228@inbox.ru', 'site': 'notehunter.net', 'age': 23, 'country': 'Russia'}
>>> {'name': 'Natalia', 'email': 'natali228@mail.ru', 'site': 'natali-best.net', 'age': 30, 'country': 'Russia'}
>>> {'name': 'Alexander', 'email': 'human1998@gmail.com', 'site': 'sharia.com', 'age': 23, 'country': 'Russia'}
Со строкой:
# Работа со строкой
json_string = '{"name": "Julia", "languages": "Russia", "age": 28}'
# Открываем с помощью метода loads()
result = json.loads(json_string)
# Выводим результат
print(result)
Результат:
>>> {'name': 'Julia', 'languages': 'Russia', 'age': 28}
Таким образом мы можем читать с помощью Python и использовать в своих целях необходимые нам данные из JSON.