Validar json en python con ejemplos

Hoy aprenderemos a validar datos JSON, porque está siendo utilizado ampliamente, es fácil de entender, compacto y construido con soporte en JavaScript. Muchos sitios comparten datos utilizando JSON además de RSS feeds hoy en día, por eso la importancia de abordar el tema.

Validar json con python
Validar json con python
Índice

    ¿Qués es JSON?

    JSON es la abreviatura de JavaScript Object Notation, y es una manera de almacenar información de forma organizada y fácil acceso. En pocas palabras, nos da una colección legible de datos a los cuales podemos acceder de manera realmente lógica.

    Podemos decir que:

    • JSON es una sintaxis para almacenar e intercambiar datos
    • JSON es una alternativa más fácil de utilizar que XML

    Ejemplos JSON y XML

    En el siguiente ejemplo JSON se define un objeto empleado con una matriz de 3 registros empleados:

    {"employees":[

        {"firstName":"John", "lastName":"Doe"},

        {"firstName":"Anna", "lastName":"Smith"},

        {"firstName":"Peter", "lastName":"Jones"}

    ]}

    En el siguiente ejemplo XML también se define un objeto empleado con 3 registros de empleado:

    <employees>
    <employee>
    <firstName>John</firstName> <lastName>Doe</lastName>
    </employee>
    <employee>
    <firstName>Anna</firstName> <lastName>Smith</lastName>
    </employee>
    <employee>
    <firstName>Peter</firstName> <lastName>Jones</lastName>
    </employee>
    </employees>


    Al igual que XML:

    • JSON es "legible por el hombre
    • JSON es jerárquico (tiene valores dentro de otros valores)
    • JSON puede ser analizado y utilizado por muchos lenguajes de programación
    • JSON puede ser obtenido con un XMLHttpRequest
    A diferencia de XML:
    • JSON no utiliza etiquetas de cierre
    • JSON es más corto
    • JSON es más rápido de leer y escribir
    • JSON puede utilizar matrices

    Ejemplos de validación JSON con Python

    Para instalar JSON en python pueden utilizar pip (Instalar pip en Linux y Windows)

    --pip install json

    json.loads() es el método que se utiliza para validar datos JSON

    La siguiente función la creamos para validar los datos:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    #JSON Validator function
    import json
     
    def json_validator(data):
        try:
            json.loads(data)
            return True
        except ValueError as error:
            print("invalid json: %s" % error)
            return False
    

    json.loads() carga los datos JSON para analizar, devolverá True o fallará y devolverá una excepción.
    En el siguiente código se muestra el ejemplo de validación de datos con JSON

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    #Validating JSON using Phython Code
    import json
     
    def json_validator(data):
        try:
            json.loads(data)
            return True
        except ValueError as error:
            print("invalid json: %s" % error)
            return False
        
     
    #Valid JSON Data
    """ {
      "actors": {
        "actor": [
          {
            "id": "1",
            "firstName": "Tom",
            "lastName": "Cruise"
          }
        ]
      }
    }
    """
     
    #Invalid JSON Data
    """
     {
        {
        "actor": [
          {
            "id": "1",
            "firstName": "Tom",
            "lastName": "Cruise"
          }
        ]
      }
    }
     """
     
     
    print(json_validator('{"actors":{"actor":[{"id":"1","firstName":"Tom","lastName":"Cruise"}]}}' ))#prints True
     
    print (json_validator('{{"actor":[{"id":"1","firstName":"Tom","lastName":"Cruise"}]}}')) #prints Error message and False
     
    #End
    

    Esto es todo por hoy, espero esta entrada sea de ayuda para sus futuras validaciones JSON con Python

    Saludos, Diego

    Fuentes:
    http://www.w3schools.com/js/js_json_intro.asp
    https://www.copterlabs.com/json-what-it-is-how-it-works-how-to-use-it/
    http://blog.codebeautify.org/validate-json-using-python/

    1. Eric dice:

      Te felicito Diego ! No habia visto una forma tan clara de entender JSON vs XML. Gracias!

      1. PythonDiario dice:

        Gracias Eric, me pareció práctico y lo compartí!!!
        Gracias por visitar el blog, Saludos

    2. Unknown dice:

      Si piensas usar Python para programacion Web, hay hosting gratis que lo acepten. Como la mayoría es php.

    Deja una respuesta

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

    Subir

    Te has suscrito correctamente al boletín

    Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

    Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.