📜  Python中的JSON格式

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

Python中的JSON格式

Javascript Object Notation 缩写为 JSON 是一种轻量级的数据交换格式。它将Python对象编码为 JSON字符串,并将 JSON字符串解码为Python对象。

  • 许多 API 像 Github。以这种格式发送他们的结果。 JSON 可能最广泛地用于 AJAX 应用程序中的 Web 服务器和客户端之间的通信,但不限于该问题域。
  • 例如,如果您正在尝试构建这样一个令人兴奋的项目,我们需要格式化 JSON 输出以呈现必要的结果。因此,让我们深入了解Python提供的用于格式化 JSON 输出的json模块。

职能

  • json.dump(obj, fileObj) :将obj序列化为 JSON 格式的流到fileObj
  • json.dumps(obj) :将obj序列化为 JSON 格式的字符串。
  • json.load(JSONfile) :将JSONfile反序列化为Python对象。
  • json.loads(JSONfile) :将JSONfile (类型:字符串)反序列化为Python对象。

    课程

  • JSONEncoder:将Python对象转换为 JSON 格式的编码器类。
  • JSONDecoder:将 JSON 格式文件转换为Python obj 的解码器类。

    转换基于此转换表。


    执行

    编码
    我们将使用 dump()、dumps() 和 JSON.Encoder 类。

    #Code will run in Python 3
      
    from io import StringIO
    import json
      
    fileObj = StringIO()
    json.dump(["Hello", "Geeks"], fileObj)
    print("Using json.dump(): "+str(fileObj.getvalue()))
      
    class TypeEncoder(json.JSONEncoder):
        def default(self, obj):
            if isinstance(obj, type):
                return str(obj)
      
    print("Using json.dumps(): "+str(json.dumps(type(str), cls=TypeEncoder)))
    print("Using json.JSONEncoder().encode"+
          str(TypeEncoder().encode(type(list))))
    print("Using json.JSONEncoder().iterencode"+
          str(list(TypeEncoder().iterencode(type(dict)))))
    

    输出:

    Using json.dump(): ["Hello", "Geeks"]
    Using json.dumps(): ""
    Using json.JSONEncoder().encode""
    Using json.JSONEncoder().iterencode['""']
    

    解码
    我们将使用 load()、loads() 和 JSON.Decoder 类。

    #Code will run in Python 3
      
    from io import StringIO
    import json
      
    fileObj = StringIO('["Geeks for Geeks"]')
    print("Using json.load(): "+str(json.load(fileObj)))
    print("Using json.loads(): "+str(json.loads('{"Geeks": 1, "for": 2, "Geeks": 3}')))
    print("Using json.JSONDecoder().decode(): " +
        str(json.JSONDecoder().decode('{"Geeks": 1, "for": 2, "Geeks": 3}')))
    print("Using json.JSONDecoder().raw_decode(): " +
        str(json.JSONDecoder().raw_decode('{"Geeks": 1, "for": 2, "Geeks": 3}')))
    

    输出:

    Using json.load(): ['Geeks for Geeks']
    Using json.loads(): {'for': 2, 'Geeks': 3}
    Using json.JSONDecoder().decode(): {'for': 2, 'Geeks': 3}
    Using json.JSONDecoder().raw_decode(): ({'for': 2, 'Geeks': 3}, 34)
    
    

    参考:

    • https://文档。 Python.org/3/library/json.html