Pitón

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 todo tipo de tipos de datos primitivos, como números, cadenas, etc., junto con objetos de Python. Los datos se almacenan en un formato estructurado en JSON. A veces es necesario buscar datos en particular de una cadena JSON grande o un archivo JSON. Hay muchas formas de buscar datos específicos a partir de datos JSON. En este artículo se muestra cómo se pueden buscar 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 llamada información de los clientes está definido para almacenar los datos JSON. El valor de la clave se tomará como entrada del usuario. El método load () del módulo JSON se utiliza para cargar datos JSON en la variable denominada cliente. próximo, 'en' El operador se utiliza 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": "[correo electrónico protegido]",
"tipo": "regular",
"dirección": "4258 Poplar Chase Lane, Boise, Idaho."
"" "
# Ingrese el valor clave que desea buscar
keyVal = input ("Ingrese un valor clave: \ n")
# cargar los datos json
cliente = json.cargas (customerData)
# Busque el valor de la clave usando el operador 'in'
si keyVal en el cliente:
# Imprime el mensaje de éxito y el valor de la clave
print ("% s se encuentra en datos JSON"% keyVal)
print ("El valor de", keyVal, "es", cliente [keyVal])
demás:
# Imprime el mensaje si el valor no existe
print ("% s no se encuentra en los datos JSON"% keyVal)

Producción:

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

Ejemplo 2: buscar un valor particular en datos JSON

El siguiente script muestra cómo buscar un valor particular en datos JSON. solicitantes La variable contiene los datos JSON donde la clave se usa para almacenar el nombre del solicitante y el valor se usa para almacenar que el solicitante está presente o ausente. El script buscará el valor 'Ausente' en los datos JSON e imprimirá el valor del nombre correspondiente. por El bucle se usa aquí itera 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
# cargar los datos json
appList = json.cargas (solicitantes)
# iterar json para encontrar la lista de solicitantes ausentes
para la clave en appList:
if (appList [clave] == 'Ausente'):
# Revisa el contador e imprime el mensaje
si (contador == 0):
print ("Los siguientes solicitantes están ausentes:")
imprimir (clave)
contador = contador + 1
# Imprima el mensaje si no falta ningún solicitante
si (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 la siguiente secuencia de comandos, una matriz JSON denominada 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. precio_búsqueda () La función se define aquí, tome el valor de la nombre clave que se buscará en los datos JSON e imprimirá el valor de la correspondiente precio unitario clave.

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

"nombre": "Pluma",
"precio_unidad": 5
,

"nombre": "Borrador",
"precio_unidad": 3
,

"nombre": "Lápiz",
"precio_unidad": 10
,

"nombre": "Libro blanco",
"precio_unidad": 15

] "" "
# cargar los datos json
items = json.cargas (jsondata)
# Ingrese el nombre del elemento que desea buscar
item = input ("Ingrese un nombre de elemento: \ n")
# Definir una función para buscar el artículo
def precio_búsqueda (nombre):
para keyval en elementos:
si nombre.lower () == keyval ['nombre'].más bajo():
return keyval ['unit_price']
# Verifique el valor devuelto e imprima el mensaje
if (precio_búsqueda (artículo) != Ninguno):
print ("El precio es:", precio_búsqueda (artículo))
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 de la nombre clave que existe en el JSON datos. La 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 los pasos para buscar el valor de una clave en particular en los datos JSON anidados. Aquí, una variable JSON anidada llamada nestedData se declara para almacenar datos anidados. Este script buscará el nombre de la marca del reloj para mujer.

#!/ usr / bin / env python3
# Importar módulo json
importar json
# Definir variable json de datos anidados
nestedData = "" "
"mirar":
"hombres":
"marca": "Titán",
"precio": 200
,
"mujeres":
"marca": "Ciudadano",
"precio": 250
,
"niño":
"marca": "Blancpain",
"precio": 100


"" "
# Cargar los datos json
lista de vigilancia = json.cargas (nestedData)
# Buscar 'marca' para mujeres
si 'marca' en la lista de seguimiento ['reloj'] ['mujeres']:
imprimir (lista de seguimiento ['reloj'] ['mujeres'] ['marca'])

Producción:

En el guión anterior, solo hay un valor de marca para el reloj de mujer que es 'Ciudadano'. Lo siguiente será el resultado después de ejecutar el script.

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

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

libros.json

[

"isbn": "7799349885",
"name": "Fundamentos de la dinámica del vehículo",
"autor": "Joop P. Pauwelussen "
,

"isbn": "7799349885",
"name": "Flujo y combustión en motores alternativos",
"autor": "C. Arcoumanis y T. Kamimoto "
,

"isbn": "7799349885",
"name": "Interacción entre conductor y vehículo de ergonomía automotriz",
"autor": "Nikolaos Gkikas"

]

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

#!/ usr / bin / env python3
# Importar módulo JSON
importar json
# Abra el archivo JSON existente para cargarlo en una variable
con libros abiertos ('.json ') como jsondata:
datos = json.cargar (jsondata)
# Buscar datos basados ​​en clave y valor usando el método de filtro y lista
imprimir (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 necesitamos encontrar la información específica de los datos con facilidad, tenemos que utilizar formas eficientes de realizar la tarea. En este artículo se explican diferentes formas de buscar clave y valor en datos JSON para ayudar a los usuarios de Python a realizar el proceso con éxito.

Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...
5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...
Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...