📜  Python中的 json.dump()

📅  最后修改于: 2022-05-13 01:54:45.416000             🧑  作者: Mango

Python中的 json.dump()

JSON 的完整形式是 JavaScript Object Notation。这意味着由编程语言中的文本组成的脚本(可执行)文件用于存储和传输数据。 Python通过一个名为json的内置包支持 JSON。要使用此功能,我们在Python脚本中导入 json 包。 JSON 中的文本是通过引用字符串完成的,该字符串包含{ }内键值映射中的值。它类似于Python中的字典。

json.dump()

Python模块中的json模块提供了一个名为dump()的方法,它将Python对象转换为适当的 json 对象。它是dumps()方法的一个轻微变体。

转储()和转储()之间的区别

dump()dumps()
The dump() method is used when the Python objects have to be stored in a file.The dumps() is used when the objects are required to be in string format and is used for parsing, printing, etc, .
The dump() needs the json file name in which the output has to be stored as an argument.The dumps() does not require any such file name to be passed.
This method writes in the memory and then command for writing to disk is executed separatelyThis method directly writes to the json file
Faster method2 times slower

dump() 及其参数

参数:

  • indent :它提高了 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()
    

    输出:

    indent_quotes

  • skipkeys:如果键不是标准允许的类型,如 int、float、 字符串、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对象中
  • ensure_ascii:这个参数也只接受布尔值。如果未设置为 true,则非 ASCII字符将按原样转储到输出文件中。默认情况下,该值为true

    请参阅下面的两个代码以了解差异。

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

    输出:

    python-json

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

    输出:

    python-json-2

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

    输出:

    python-json

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

    输出:

    python-json