Найти в Дзене
IT Start | Python

Работа с json-файлами в Python

Введение JSON — это текстовый формат обмена данными, основанный на JavaScript. Но при этом формат независим от JS и может использоваться в любом языке программирования. В данной статье научимся работать с json-файлами в языке программирования Python. Модуль json Для работы с json-файлами нам понадобится модуль json, который к счастью входит в стандартную библиотеку python. Импортируем его: import json Создание json-файлов в Python Создадим словарь data, и занесём в него данные к примеру человека по имени “Василий”: import json data = {
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": True,
"skills": ["To eat", "Play games", "Drinking beer"]
} Для создания json-файла используем конструкцию with … as. Назовём файл data1.json, и при момощи функции dump() преобразуем наш словарь в json-формат: import json data = {
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": True,
"skills": ["To eat", "Pl
Оглавление

Введение

JSON — это текстовый формат обмена данными, основанный на JavaScript. Но при этом формат независим от JS и может использоваться в любом языке программирования.

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

Модуль json

Для работы с json-файлами нам понадобится модуль json, который к счастью входит в стандартную библиотеку python. Импортируем его:

import json

Создание json-файлов в Python

Создадим словарь data, и занесём в него данные к примеру человека по имени “Василий”:

import json

data = {
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": True,
"skills": ["To eat", "Play games", "Drinking beer"]
}

Для создания json-файла используем конструкцию with … as. Назовём файл data1.json, и при момощи функции dump() преобразуем наш словарь в json-формат:

import json

data = {
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": True,
"skills": ["To eat", "Play games", "Drinking beer"]
}

with open("data1.json", "w") as f:
f.write(json.dumps(data, indent=4))

Параметр indent указывает на количество пробелов слева.

После запуска кода создастся json-файл под названием data1.json со следующим содержимым:

{
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": true,
"skills": [
"To eat",
"Play games",
"Drinking beer"
]
}

Обработка символов, отличных от ASCII

Теперь разберёмся, как работать с кодировками отличными от ASCII. К примеру заменим все слова на русские:

import json

data = {
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": True,
"skills": ["Кушать", "Играть в игры", "Пить пиво"]
}

with open("data1.json", "w") as f:
f.write(json.dumps(data, indent=4))

После запуска кода мы увидим, последовательности юникода, вместо русских букв:

{
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": true,
"skills": [
"\u041a\u0443\u0448\u0430\u0442\u044c",
"\u0418\u0433\u0440\u0430\u0442\u044c \u0432 \u0438\u0433\u0440\u044b",
"\u041f\u0438\u0442\u044c \u043f\u0438\u0432\u043e"
]
}

Чтобы это исправить во-первых укажем кодировку при открытии файла, а в параметре ensure_ascii укажем False:

import json

data = {
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": True,
"skills": ["Кушать", "Играть в игры", "Пить пиво"]
}

with open("data1.json", "w", encoding="utf-8") as f:
f.write(json.dumps(data, indent=4, ensure_ascii=False))

После запуска кода получим json-файл со следующим содержимым:

{
"first_name": "Vasiliy",
"email": "vasya@gmail.com",
"salary": 25000.5,
"age": 23,
"human": true,
"skills": [
"Кушать",
"Играть в игры",
"Пить пиво"
]
}

Открыть json-файл в Python

Теперь научимся открывать json-файлы в самом Python.
Откроем файл в режиме для чтения используя конструкцию with … as, укажем кодировку UTF-8. Внутри конструкции в data загрузим данные из json-файла при момощи функции
load() и выведем их:

import json

with open("data1.json", 'r', encoding='UTF-8') as f:
data = json.load(f)
print(data)

# Вывод: {'first_name': 'Vasiliy', 'email': 'vasya@gmail.com', 'salary': 25000.5, 'age': 23, 'human': True, 'skills': ['Кушать', 'Играть в игры', 'Пить пиво']}

Также можно использовать метод loads(), вместо load():

import json

with open("data1.json", 'r', encoding='utf-8') as f:
data = json.loads(f.read())
print(data)

# Вывод: {'first_name': 'Vasiliy', 'email': 'vasya@gmail.com', 'salary': 25000.5, 'age': 23, 'human': True, 'skills': ['Кушать', 'Играть в игры', 'Пить пиво']}

Видеоурок

Заключение

В ходе статьи мы с Вами научились работать с json-файлами в Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Мой Telegram канал

Мой YouTube канал

Курс по созданию GUI на Python