Herramientas de usuario

Herramientas del sitio


informatica:programacion:python:cursos:introduccion_programacion_python:ejemplos_practicos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:python:cursos:introduccion_programacion_python:ejemplos_practicos [2023/04/27 11:47] – [Conversión a números romanos] tempwininformatica:programacion:python:cursos:introduccion_programacion_python:ejemplos_practicos [2023/04/28 11:47] (actual) – [JSON en Python] tempwin
Línea 701: Línea 701:
         return ""         return ""
 </code> </code>
 +
 +  * [[https://codewars.com|codewars]]: retos de programación
 +
 +===== JSON =====
 +
 +JSON (//JavaScript Object Notation//) formato para el intercambio de información.
 +
 +JSON no son más que objetos (que son equivalentes a los diccionarios de Python) y listas.
 +
 +Se trata de texto.
 +
 +  * https://www.json.org/json-en.html
 +
 +==== JSON en Python ====
 +
 +Aspecto de un JSON, que lo representamos como string:
 +
 +<code python>
 +datos_json = '''
 +{
 +    "glossary": {
 +        "title": "example glossary",
 +        "GlossDiv": {
 +            "title": "S",
 +            "GlossList": {
 +                "GlossEntry": {
 +                    "ID": "SGML",
 +                    "SortAs": "SGML",
 +                    "GlossTerm": "Standard Generalized Markup Language",
 +                    "Acronym": "SGML",
 +                    "Abbrev": "ISO 8879:1986",
 +                    "GlossDef": {
 +                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
 +                        "GlossSeeAlso": [
 +                            "GML",
 +                            "XML"
 +                        ]
 +                    },
 +                    "GlossSee": "markup"
 +                }
 +            }
 +        }
 +    }
 +}
 +'''
 +</code>
 +
 +  * [[https://docs.python.org/3/library/json.html|Tratamiento de JSON en Python (documentación oficial)]]
 +
 +<code python>
 +# Biblioteca de Python para el tratamiento de JSON
 +import json
 +
 +# Cargamos a partir de un string un objeto JSON/diccionario
 +datos = json.loads(datos_json)
 +
 +type(datos) # dict
 +
 +datos.keys() # dict_keys(['glossary'])
 +
 +glossary = datos['glossary'] # dict
 +
 +glossary.keys() # dict_keys(['title', 'GlossDiv'])
 +
 +paises_capitales = {
 +    "España": "Madrid",
 +    "Portugal": "Lisboa",
 +    "Italia": "Roma",
 +    "Francia": "Paris",
 +    "Alemania": "Berlin"
 +}
 +
 +type(paises_capitales) # dict
 +
 +# Si queremos pasar de un diccionario a string en formato JSON
 +json.dumps(paises_capitales)
 +</code>
 +
 +  * [[https://jsonviewer.stack.hu/|Online JSON Viewer]]
 +
 +Si procesamos un JSON inválido:
 +
 +<code python>
 +mal_json = '''
 +{"mal": "json"
 +'''
 +
 +try:
 +    json.loads(mal_json)
 +except json.JSONDecodeError as error:
 +    print("Error cargando JSON")
 +</code>
 +
 +
 +disculpa, Jairo, sabes hasta qué día tenemos disponible el acceso al campus virtual?
informatica/programacion/python/cursos/introduccion_programacion_python/ejemplos_practicos.1682588825.txt.gz · Última modificación: por tempwin