logo

json.dumps() у Python

JSON це абревіатура, що розшифровується як JavaScript Object Notation. Незважаючи на свою назву, JSON — це мовний агностичний формат, який найчастіше використовується для передачі даних між системами, а іноді й для зберігання даних. Програми, написані на Python, а також на багатьох інших мовах програмування, можуть приймати дані у форматі JSON і можуть серіалізувати дані в пам’яті у формат JSON. Python підтримує JSON через вбудований пакет під назвою json. Щоб скористатися цією функцією, імпортуйте пакет json у сценарій або модуль Python, у якому ви хочете серіалізувати або десеріалізувати свої дані. JSON використовує пари ключів-значень, розділених комами, у подвійних лапках і двокрапками. Тіло файлу JSON можна розділити фігурними дужками { } або квадратними дужками [] (також відомими як дужки в деяких мовах). Формат JSON схожий на словник у Python, але особливості формату JSON мають значні відмінності, тому будьте обережні, працюючи з обома форматами.

Примітка: Для отримання додаткової інформації зверніться до Читати, Написати й розібрати JSON за допомогою Python



Json.dumps()

Функція json.dumps() перетворить підмножину об’єктів Python у рядок json. Не всі об’єкти можна конвертувати, і вам може знадобитися створити словник даних, які ви хочете надати перед серіалізацією в JSON.

Синтаксис:
json.dumps(obj, *, skipkeys=False, secure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
Параметри:
об'єкт: Серіалізуйте obj як потік у форматі JSON
пропустити клавіші: Якщо skipkeys має значення True (за замовчуванням: False), тоді ключі dict, які не мають базового типу (str, int, float, bool, None), будуть пропущені замість того, щоб викликати помилку TypeError.
secure_ascii: Якщо secure_ascii має значення True (за замовчуванням), вихід гарантовано матиме екранування всіх вхідних символів, які не є ASCII. Якщо secure_ascii має значення False, ці символи виводитимуться як є.
check_circular: Якщо check_circular має значення False (за замовчуванням: True), то циклічна перевірка посилань для типів контейнерів буде пропущена, а циклічне посилання призведе до помилки OverflowError (або ще гіршого).
дозволити_вхід: Якщо allow_nan має значення False (за замовчуванням: True), то серіалізація значень з плаваючою речовиною (nan, inf, -inf) за межами діапазону буде помилкою ValueError у суворій відповідності до специфікації JSON. Якщо allow_nan має значення True, використовуватимуться їхні еквіваленти JavaScript (NaN, Infinity, -Infinity).
відступ: Якщо відступ є невід’ємним цілим числом або рядком, елементи масиву JSON і члени об’єкта будуть надруковані з таким рівнем відступу. Рівень відступу 0, негативний або вставлятиме лише нові рядки. None (за замовчуванням) вибирає найбільш компактне представлення. Використання додатного цілого відступу робить стільки відступів на рівень. Якщо відступ є рядком (наприклад, ), цей рядок використовується для відступу кожного рівня.
роздільники: Якщо вказано, роздільники мають бути кортежем (item_separator, key_separator). За замовчуванням (‘, ‘, ‘: ‘), якщо відступ має значення Немає, і (‘, ‘, ‘: ‘), інакше. Щоб отримати найбільш компактне представлення JSON, ви повинні вказати (‘, ‘, ‘:’), щоб усунути пробіли.
за замовчуванням: Якщо вказано, за замовчуванням має бути функція, яка викликається для об’єктів, які не можуть бути серіалізовані інакше. Він має повертати версію об’єкта, яку можна кодувати JSON, або викликати TypeError. Якщо не вказано, виникає TypeError.
sort_keys: Якщо sort_keys має значення True (за замовчуванням: False), тоді вихідні дані словників будуть відсортовані за ключем.

Приклад №1: Передача словника Python у функцію json.dumps() поверне рядок.



Python3






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))>

>

багаторядковий коментар Powershell
>

Вихід

Еквівалентний рядок json словника: {1: Welcome, 2: to, 3: Geeks, 4: for, 5: Geeks}

Приклад №2: Встановлюючи значення skipkeys у значення True (за замовчуванням: False), ми автоматично пропускаємо ключі, які не мають базового типу.

Python3




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)>

>

>

Вихід

хто такий фредді мерк'юрі

Еквівалентний рядок json словника: {2: to, 3: Geeks, 4: for, 5: Geeks}

Приклад №3:

Python3




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)>

>

>

Вихід:

Еквівалентний рядок json словника: {2: to, 3: Geeks, 4: for, 5: Geeks, 6: NaN}

Приклад №4:

Python3




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:

символ.порівняти java

Python3




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:

Python3




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' }>