You are currently viewing json.dumps() в Python

json.dumps() в Python

Полная форма JSON-это нотация объектов JavaScript. Это означает, что для хранения и передачи данных используется файл сценария (исполняемый файл), состоящий из текста на языке программирования. Python поддерживает JSON через встроенный пакет под названием json. Чтобы использовать эту функцию, мы импортируем пакет json в скрипт Python. Текст в JSON выполняется с помощью строки в кавычках, которая содержит значение в сопоставлении ключ-значение в { }. Он похож на словарь на Python.

Примечание. Для получения дополнительной информации см. раздел Чтение, запись и анализ JSON с использованием Python

Json.dumps()

функция json.dumps() преобразует объект Python в строку json.

Синтаксис: 
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
Параметры: 

obj: Сериализовать obj в виде потока в формате JSON

skipkeys: Если значение skipkeys равно true (по умолчанию: False), то ключи dict, которые не относятся к базовому типу (str, int, float, bool, Нет), будут пропущены вместо того, чтобы вызывать ошибку типа.

ensure_ascii: Если значение ensure_ascii равно true (по умолчанию), то на выходе гарантированно будут экранированы все входящие символы, отличные от ASCII. Если ensure_ascii имеет значение false, эти символы будут выведены как есть.

check_circular: Если значение check_circular равно false (по умолчанию: True), то проверка циклической ссылки для типов контейнеров будет пропущена, а циклическая ссылка приведет к ошибке переполнения (или хуже).

allow_nan: Если значение allow_nan равно false (по умолчанию: True), то ошибка будет иметь значение для сериализации значений с плавающей запятой вне диапазона (nan, inf, -inf) в строгом соответствии со спецификацией JSON. Если значение allow_nan равно true, будут использоваться их эквиваленты JavaScript (NaN, Бесконечность, -Бесконечность).

indent: Если отступ является неотрицательным целым числом или строкой, то элементы массива JSON и элементы объекта будут красиво напечатаны с этим уровнем отступа. Уровень отступа 0, отрицательный или “” будет вставлять только новые строки. Нет (по умолчанию) выбирает наиболее компактное представление. Использование отступа с положительным целым числом уменьшает количество пробелов на уровне. Если отступ-это строка (например, “\t”), эта строка используется для отступа каждого уровня.

separators: Если указано, разделителями должен быть кортеж (item_separator, key_separator). По умолчанию используется ( ‘ ,‘,‘:‘), если отступ отсутствует и (‘, ‘, ‘: ‘) в противном случае. Чтобы получить наиболее компактное представление JSON, вы должны указать ( ‘ ,‘,‘:’), чтобы исключить пробелы.

default: Если указано, по умолчанию должна быть функция, которая вызывается для объектов, которые иначе не могут быть сериализованы. Он должен возвращать кодируемую JSON версию объекта или вызывать ошибку типа. Если не указано, возникает ошибка ввода.

sort_keys: Если значение sort_keys равно true (по умолчанию: False), то выходные данные словарей будут отсортированы по ключу.

Пример № 1: 

Передача словаря Python функции json.dumps() вернет строку.

import json

# Creating a dictionary
Dictionary ={1:'Welcome', 2:'to',
			3:'Geeks', 4:'for',
			5:'Geeks'}

# Converts input dictionary into
# string and stores it in json_string
json_string = json.dumps(Dictionary)
print('Equivalent json string of input dictionary:',
	json_string)
print("	 ")

# Checking type of object
# returned by json.dumps
print(type(json_string))

Выход

Equivalent json string of dictionary: {“1”: “Welcome”, “2”: “to”, “3”: “Geeks”, “4”: “for”, “5”: “Geeks”}
<class ‘str’>

Пример № 2: 

Установив для пропускных клавиш значение True(по умолчанию: False), мы автоматически пропускаем ключи, которые не относятся к базовому типу.

import json


Dictionary ={(1, 2, 3):'Welcome', 2:'to',
			3:'Geeks', 4:'for',
			5:'Geeks'}


# Our dictionary contains tuple
# as key, so it is automatically
# skipped If we have not set
# skipkeys = True then the code
# throws the error
json_string = json.dumps(Dictionary,
						skipkeys = True)

print('Equivalent json string of dictionary:',
	json_string)

Выход

Equivalent json string of dictionary: {“2”: “to”, “3”: “Geeks”, “4”: “for”, “5”: “Geeks”}

Пример № 3:

import json


# We are adding nan values
# (out of range float values)
# in dictionary
Dictionary ={(1, 2, 3):'Welcome', 2:'to',
			3:'Geeks', 4:'for',
			5:'Geeks', 6:float('nan')}

# If we hadn't set allow_nan to
# true we would have got
# ValueError: Out of range float
# values are not JSON compliant
json_string = json.dumps(Dictionary,
						skipkeys = True,
						allow_nan = True)

print('Equivalent json string of dictionary:',
	json_string)

Выход :

Equivalent json string of dictionary: {“2”: “to”, “3”: “Geeks”, “4”: “for”, “5”: “Geeks”, “6”: NaN}

Пример № 4:

import json


Dictionary ={(1, 2, 3):'Welcome', 2:'to',
			3:'Geeks', 4:'for',
			5:'Geeks', 6:float('nan')}

# Indentation can be used
# for pretty-printing
json_string = json.dumps(Dictionary,
						skipkeys = True,
						allow_nan = True,
						indent = 6)

print('Equivalent json string of dictionary:',
	json_string)

Выход:

Equivalent json string of dictionary: {
 "2": "to",
 "3": "Geeks",
 "4": "for",
 "5": "Geeks",
 "6": NaN
}

Пример № 5:

import json

Dictionary ={(1, 2, 3):'Welcome', 2:'to',
			3:'Geeks', 4:'for',
			5:'Geeks', 6:float('nan')}

# If specified, separators should be
# an (item_separator, key_separator)tuple
# Items are separated by '.' and key,
# values are separated by '='
json_string = json.dumps(Dictionary,
						skipkeys = True,
						allow_nan = True,
						indent = 6,
						separators =(". ", " = "))

print('Equivalent json string of dictionary:',
	json_string)

Выход:

Equivalent json string of dictionary: {
 "2" = "to". 
 "3" = "Geeks". 
 "4" = "for". 
 "5" = "Geeks". 
 "6" = NaN
}

Пример № 6:

import json

Dictionary ={'c':'Welcome', 'b':'to',
			'a':'Geeks'}

json_string = json.dumps(Dictionary,
						indent = 6,
						separators =(". ", " = "),
						sort_keys = True)

print('Equivalent json string of dictionary:',
	json_string)

Выход:

Equivalent json string of dictionary: {
 "a" = "Geeks". 
 "b" = "to". 
 "c" = "Welcome"
}