Formato JSON en Python

La notación de objetos Javascript, abreviada como JSON, es un formato de intercambio de datos ligero. Codifica objetos de Python como strings JSON y decodifica strings JSON en objetos de Python.

  • Muchas de las API como Github . enviar sus resultados en este formato. JSON es probablemente el más utilizado para la comunicación entre el servidor web y el cliente en una aplicación AJAX, pero no se limita a ese dominio problemático.
  • Por ejemplo, si está tratando de crear un proyecto emocionante como este , debemos formatear la salida JSON para generar los resultados necesarios. Entonces, profundicemos en el módulo json que Python ofrece para formatear la salida JSON.

Funciones

  • json.dump(obj, fileObj) : serializa obj como una transmisión con formato JSON a fileObj .
  • json.dumps(obj) : serializa obj como una string con formato JSON.
  • json.load(JSONfile) : Deserializa JSONfile a un objeto de Python.
  • json.loads(JSONfile) : Deserializa JSONfile (tipo: string) a un objeto de Python.
  • Clases

  • JSONEncoder: una clase de codificador para convertir objetos de Python al formato JSON.
  • JSONDecoder: una clase de decodificador para convertir archivos de formato JSON en Python obj.
  • Las conversiones se basan en esta tabla de conversión .


    Implementación

    Codificación
    Usaremos dump(), dumps() y la clase 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)))))
    

    Producción:

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

    Decodificación
    Usaremos load(), loads() y la clase 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}')))
    

    Producción:

    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)
    
    

    Referencia:

    Este artículo es una contribución de Sri Sanketh Uppalapati . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

    Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

    Publicación traducida automáticamente

    Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *