json.dump () в Python

Опубликовано: 2 Декабря, 2021

Полная форма 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 )

    Выход: