JSON es un formato de datos liviano para el intercambio de datos que los humanos pueden leer y escribir fácilmente, y las máquinas pueden analizar y generar fácilmente. Es un formato de texto completo e independiente del idioma. Para trabajar con datos JSON, Python tiene un paquete integrado llamado json.
Example: s = '{"id":01, "name": "Emily", "language": ["C++", "Python"]}'
La sintaxis de JSON se considera un subconjunto de la sintaxis de JavaScript, que incluye lo siguiente:
- Pares de nombre/valor: representan datos, el nombre va seguido de ‘:’ (dos puntos) y los pares de nombre/valor están separados por (coma).
- Llaves: Sostiene objetos.
- Corchetes: contienen arrays con valores separados por (coma).
Las claves/nombre deben ser strings con comillas dobles y los valores deben ser tipos de datos entre los siguientes:
- Cuerda
- Número
- Objeto (objeto JSON)
- formación
- booleano
- Nulo
Example: { "employee": [ { "id": "01", "name": "Amit", "department": "Sales" }, { "id": "04", "name": "sunil", "department": "HR" } ] }
Analizar JSON (Convertir de JSON a Python)
El método json.loads() puede analizar una string json y el resultado será un diccionario de Python.
Sintaxis:
json.loads(json_string)
Ejemplo:
Python3
# Python program to convert JSON to Python import json # JSON string employee ='{"id":"09", "name": "Nitin", "department":"Finance"}' # Convert string to Python dict employee_dict = json.loads(employee) print(employee_dict) print(employee_dict['name'])
Producción:
{'id': '09', 'department': 'Finance', 'name': 'Nitin'} Nitin
Python lee el archivo JSON
El método json.load() puede leer un archivo que contiene un objeto JSON. Considere un archivo llamado employee.json que contiene un objeto JSON.
Sintaxis:
json.load(file_object)
Ejemplo: Supongamos que el JSON se ve así.
Queremos leer el contenido de este archivo. A continuación se muestra la implementación.
Python3
# Python program to read # json file import json # Opening JSON file f = open('data.json',) # returns JSON object as # a dictionary data = json.load(f) # Iterating through the json # list for i in data['emp_details']: print(i) # Closing file f.close()
Producción:
Aquí, hemos usado la función open() para leer el archivo JSON. Luego, el archivo se analiza usando el método json.load() que nos da un diccionario llamado datos.
Convertir de Python a JSON
El método json.dumps() puede convertir un objeto Python en una string JSON.
Sintaxis:
json.dumps(dict, indent)
Toma dos parámetros:
- diccionario: nombre del diccionario que debe convertirse en objeto JSON.
- sangría – define el número de unidades para la sangría
Ejemplo:
Python3
# Python program to convert # Python to JSON import json # Data to be written dictionary ={ "id": "04", "name": "sunil", "department": "HR" } # Serializing json json_object = json.dumps(dictionary, indent = 4) print(json_object)
{ "id": "04", "name": "sunil", "department": "HR" }
Producción:
{ "depatment": "HR", "id": "04", "name": "sunil" }
Los siguientes tipos de objetos de Python se pueden convertir en strings JSON:
- dictar
- lista
- tupla
- cuerda
- En t
- flotar
- Verdadero
- Falso
- Ninguna
Objetos de Python y su conversión equivalente a JSON:
Python | Equivalente JSON |
---|---|
dictar | objeto |
lista, tupla | formación |
calle | cuerda |
int, flotante | número |
Verdadero | verdadero |
Falso | falso |
Ninguna | nulo |
Escribir JSON en un archivo
El método json.dump() se puede usar para escribir en un archivo JSON.
Sintaxis:
json.dump(dict, file_pointer)
Toma 2 parámetros:
- diccionario: nombre del diccionario que debe convertirse en objeto JSON.
- Puntero de archivo: puntero del archivo abierto en modo escribir o agregar.
Python3
# Python program to write JSON # to a file import json # Data to be written dictionary ={ "name" : "sathiyajith", "rollno" : 56, "cgpa" : 8.6, "phonenumber" : "9976770500" } with open("sample.json", "w") as outfile: json.dump(dictionary, outfile)
Producción:
El programa anterior abre un archivo llamado sample.json en modo de escritura usando ‘w’. El archivo se creará si no existe. Json.dump() transformará el diccionario en una string JSON y se guardará en el archivo sample.json.