Cómo buscar datos en JSON usando Python

Cómo buscar datos en JSON usando Python

Una de las técnicas de serialización de datos más utilizadas es el formato JSON. Python tiene un módulo JSON incorporado para trabajar con datos JSON. Admite todos los tipos de tipos de datos primitivos, como número, cadena, etc., junto con objetos de Python. Los datos se almacenan en un formato estructurado en JSON. A veces se requiere buscar datos particulares de una cadena JSON grande o un archivo JSON. Hay muchas formas de buscar datos específicos de los datos de JSON. En este artículo se muestra cómo se pueden buscar los datos JSON en función de la clave o el valor utilizando el script de Python.

Ejemplo-1: clave de búsqueda en datos JSON simples

El siguiente script muestra cómo buscar si existe una clave en particular en una cadena JSON o no. Aquí, una variable nombrada datos de los clientes se define para almacenar los datos JSON. El valor de la clave se tomará como entrada del usuario. El método de carga () del módulo JSON se utiliza para cargar datos JSON en la variable nombrada cliente. Próximo, 'en' El operador se usa para buscar la clave.

#!/usr/bin/env python3
# Importar módulo JSON
importar json
# Definir datos JSON
customerData = "" "
"ID": "3425678",
"Nombre": "John Micheal",
"Correo electrónico": "[email protected] ",
"Tipo": "regular",
"Dirección": "4258 Poplar Chase Lane, Boise, Idaho."
"" "
# Ingrese el valor clave que desea buscar
keyVal = input ("Ingrese un valor de clave: \ n")
# Cargue los datos JSON
Cliente = JSON.Cargas (CustomerData)
# Busque el valor clave usando el operador 'in'
Si Keyval en el cliente:
# Imprima el mensaje de éxito y el valor de la clave
imprimir (" %s se encuentra en los datos JSON" %keyval)
Imprimir ("El valor de", Keyval, "es", Cliente [KeyVal])
demás:
# Imprima el mensaje si el valor no existe
imprimir (" %s no se encuentra en los datos JSON" %keyval)

Producción:

El script se ejecuta dos veces aquí. Se proporciona un valor clave existente por primera vez y se proporciona un valor clave no existente por segunda vez.

Ejemplo-2: busque un valor particular en los datos JSON

El siguiente script muestra cómo buscar un valor particular en los datos JSON. solicitantes La variable contiene los datos JSON donde la clave se utiliza para almacenar el nombre y el valor del solicitante que se utiliza para almacenar el solicitante está presente o ausente. El script buscará el valor 'ausente' en los datos JSON e imprimirá el valor del nombre correspondiente. para El bucle se usa aquí iterar los datos JSON.

#!/usr/bin/env python3
# Importar módulo JSON
importar json
# Definir datos JSON
solicitantes = "" "
"Scott C Aldridge": "presente",
"Joe L Foss": "presente",
"Clyde m Gold": "presente",
"Monique C Doolittle": "ausente",
"David M Volkert": "presente",
"Israel M oneal": "presente",
"Elizabeth M Groff": "ausente"
"" "
# Inicializar un contador
contador = 0
# Cargue los datos JSON
APLIST = JSON.Cargas (solicitantes)
# iterer json para encontrar la lista de solicitantes ausentes
Para la llave en el aplicado:
if (aplic [key] == 'ausente'):
# Verifique el mostrador del mensaje Imprimir el mensaje
if (contador == 0):
Imprimir ("Los siguientes solicitantes están ausentes:")
Imprimir (clave)
contador = contador + 1
# Imprima el mensaje si ningún solicitante está ausente
if (contador == 0):
Imprimir ("Todos los solicitantes están presentes")

Producción:

Según los datos JSON del script, dos solicitantes están ausentes. Esta será la salida resultante después de ejecutar el script:

Ejemplo-3: Valor de búsqueda en datos de matriz JSON utilizando la función personalizada

En el siguiente guión, una matriz JSON nombra jsondata se define. Aquí se buscará un valor particular de una clave y si el valor existe, el valor de otra clave relacionada se imprimirá como salida. Search_price () La función se define aquí, tome el valor del nombre clave que se buscará en los datos JSON e imprimirá el valor del correspondiente precio unitario llave.

#!/usr/bin/env python3
# Importar módulo JSON
importar json
# Defina la variable JSON
jsondata = "" "[

"Nombre": "Pen",
"unit_price": 5
,

"Nombre": "Eraser",
"unit_price": 3
,

"Nombre": "lápiz",
"unit_price": 10
,

"Nombre": "Libro blanco",
"unit_price": 15

] "" "
# Cargue los datos JSON
Elementos = JSON.Cargas (JSondata)
# Ingrese el nombre del elemento que desea buscar
item = input ("Ingrese un nombre de elemento: \ n")
# Defina una función para buscar en el elemento
Def Search_Price (nombre):
Para Keyval en los elementos:
Si nombre.Lower () == KeyVal ['Nombre'].más bajo():
return keyVal ['unit_price']
# Verifique el valor de retorno y el mensaje de impresión
if (search_price (elemento) != Ninguno):
imprimir ("El precio es:", search_price (elemento))
demás:
Imprimir ("El artículo no se encuentra")

Producción:

El script se ejecuta dos veces en esta salida. 'lápiz' se toma como el valor del nombre clave que existe en el Json datos. El precio unitario de 'lápiz' es 10 que esta impreso. Próximo, 'libro' se toma como un valor de entrada que no existe en los datos JSON.

Ejemplo-4: clave de búsqueda en datos JSON anidados

El siguiente script muestra pasos para buscar el valor de una clave particular en los datos JSON anidados. Aquí, una variable JSON anidada nombrada Data anidada se declara almacenar datos anidados. Este guión buscará la marca del reloj para mujeres.

#!/usr/bin/env python3
# Importar módulo JSON
importar json
# Definir la variable JSON de datos anidados
NestedData = "" "
"mirar":
"hombres":
"Brand": "Titán",
"Precio": 200
,
"mujer":
"Brand": "Ciudadano",
"Precio": 250
,
"niño":
"Brand": "Blancpain",
"Precio": 100


"" "
# Cargue los datos JSON
Lista de vigilancia = JSON.Cargas (Data Nested)
# Buscar 'marca' para mujeres
Si 'Brand' en Watchlist ['Watch'] ['Women']:
print (Lista de vigilancia ['Watch'] ['Women'] ['Brand'])

Producción:

En el guión anterior, solo hay un valor de marca para Women Watch que es 'Ciudadano'. La siguiente será la salida después de ejecutar el script.

Ejemplo-5: Búsqueda de la entrada desde un archivo JSON usando el método de filtro y lambda

Los siguientes pasos muestran cómo puede buscar la entrada desde un archivo JSON basado en una clave y valores particulares. El contenido de libros.json El archivo se proporciona a continuación.

libros.json

[

"ISBN": "7799349885",
"Nombre": "Essential de la dinámica del vehículo",
"Autor": "Joop P. Pauwelussen "
,

"ISBN": "7799349885",
"Nombre": "Flujo y combustión en motores alternativos",
"Autor": "C. Arcoumanis y T. Kamimoto "
,

"ISBN": "7799349885",
"Nombre": "Interacción del vehículo del conductor de ergonomía automotriz",
"Autor": "Nikolaos Gkikas"

]

El siguiente script buscará la entrada desde libros.json archivo, donde el valor de el autor La clave es Nikolaos Gkikas usando lambda y filtrar() método.

#!/usr/bin/env python3
# Importar módulo JSON
importar json
# Abra el archivo JSON existente para cargar en una variable
Con Open ('Libros.json ') como JSondata:
datos = JSON.Carga (JSondata)
# Datos de búsqueda basados ​​en la clave y el valor utilizando el método de filtro y lista
print (lista (filtro (lambda x: x ["autor"] == "Nikolaos gkikas", datos))))

Producción:

La siguiente salida aparecerá después de ejecutar el script.

Conclusión:

Cuando trabajamos con una gran cantidad de datos JSON y necesitan averiguar la información específica de los datos con facilidad, tenemos que usar formas eficientes de hacer la tarea. En este artículo se explican diferentes formas de buscar clave y valor en los datos de JSON para ayudar a los usuarios de Python a realizar el proceso con éxito.