json.dump () в Python
Полная форма JSON - это нотация объектов JavaScript. Это означает, что файл сценария (исполняемый), состоящий из текста на языке программирования, используется для хранения и передачи данных. Python поддерживает JSON через встроенный пакет json
. Чтобы использовать эту функцию, мы импортируем пакет json в скрипт Python. Текст в JSON создается с помощью строки в кавычках, которая содержит значение в сопоставлении "ключ-значение" в { }
. Он похож на словарь в Python.
json.dump ()
json
модуле Python предоставляет метод под названием dump()
который преобразует объекты Python в соответствующие объекты json. Это небольшой вариант метода dumps()
.
Разница между dump () и dumps ()
свалка() | свалки () |
---|---|
Метод dump () используется, когда объекты Python необходимо сохранить в файле. | Dumps () используется, когда требуется, чтобы объекты были в строковом формате, и используется для синтаксического анализа, печати и т. Д. |
Для функции dump () требуется имя файла json, в котором вывод должен быть сохранен в качестве аргумента. | Dumps () не требует передачи такого имени файла. |
Этот метод записывает в память, а затем команда записи на диск выполняется отдельно | Этот метод напрямую записывает в файл json |
Более быстрый метод | В 2 раза медленнее |
dump () и его аргументы
Syntax: json.dump(d, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None)
Параметры:
- отступ: улучшает читаемость файла json. Возможные значения, которые могут быть переданы этому параметру, - это просто двойные кавычки (
""
), любые целочисленные значения. Простые двойные кавычки заставляют каждую пару "ключ-значение" появляться в новой строке.Пример:
import
json
# python object(dictionary) to be dumped
dict1
=
{
"emp1"
: {
"name"
:
"Lisa"
,
"designation"
:
"programmer"
,
"age"
:
"34"
,
"salary"
:
"54000"
},
"emp2"
: {
"name"
:
"Elis"
,
"designation"
:
"Trainee"
,
"age"
:
"24"
,
"salary"
:
"40000"
},
}
# the json file where the output must be stored
out_file
=
open
(
"myfile.json"
,
"w"
)
json.dump(dict1, out_file, indent
=
6
)
out_file.close()
Выход:
- skipkeys: если ключ не относится к стандартным допустимым типам, таким как int, float, string, None или bool, при их сбросе будет сгенерирована ошибка. Чтобы этого избежать, если для этого параметра установлено значение true .
Пример:
import
json
# python object(dictionary) to be dumped
dict1
=
{
(
'addresss'
,
'street'
):
'Brigade road'
,
}
# the json file where the output must be stored
out_file
=
open
(
"myfile.json"
,
"w"
)
json.dump(dict1, out_file, indent
=
6
)
out_file.close()
Выход:
Если для skipkeys не задано значение true, будет сгенерирована следующая ошибка:
- разделитель: этот параметр может принимать одно или два значения. Первое значение определяет символ, отделяющий одну пару "ключ-значение" от другой. Следующий определяет символ, отделяющий значение от его ключа.
- sort_keys: этот параметр принимает логическое значение. Если установлено значение True, ключи устанавливаются в порядке возрастания, в противном случае они отображаются как в объекте Python.
- sure_ascii: этот параметр также принимает только логические значения. Если не установлено значение true, символы, отличные от ASCII, выгружаются в выходной файл как есть. По умолчанию значение истинно .
См. Два кода ниже, чтобы увидеть разницу.
Пример 1:
# dictionary to be dumped
d
=
{
'lang'
:
'??? ????'
}
with
open
(
'myfile.json'
,
'w'
, encoding
=
'utf8'
) as json_file:
json.dump(d, json_file, ensure_ascii
=
False
)
Выход:
Пример 2: Если установлено значение True, то содержимое файла json будет следующим:
import
json
# dictionary to be dumped
d
=
{
'lang'
:
'??? ????'
}
with
open
(
'myfile.json'
,
'w'
, encoding
=
'utf8'
) as json_file:
json.dump(d, json_file, ensure_ascii
=
True
)
Выход:
- allow_nan: помогает сериализовать диапазон значений с плавающей запятой.
Пример 1:
import
json
# dictionary to be dumped
d
=
{
'a'
:
1
,
'x'
:
float
(
'nan'
)
}
with
open
(
'myfile.json'
,
'w'
, encoding
=
'utf8'
) as json_file:
json.dump(d, json_file, allow_nan
=
False
)
Выход:
Пример 2: Если установлено значение True, ошибка не будет сгенерирована. Содержимое json-файла будет:
import
json
# dictionary to be dumped
d
=
{
'a'
:
1
,
'x'
:
float
(
'nan'
)
}
with
open
(
'myfile.json'
,
'w'
, encoding
=
'utf8'
) as json_file:
json.dump(d, json_file, allow_nan
=
True
)
Выход: