¿Cómo leer un archivo JSON en Python?

¡¡¡Hola a todos!!! Hoy vamos a intentar entender: ¿qué es JSON y cómo leer un archivo JSON en Python?

Antes de nada, un poco de datos:

1. JSON son las siglas de JavaScript Object Notation. Es un formato de intercambio de datos donde se pueden transferir datos de cliente a servidor y de servidor a cliente.
2. También se utiliza para la comunicación entre aplicaciones
3. JSON es extremadamente importante para el desarrollo de aplicaciones, especialmente cuando se trabaja con las API Rest
4. Se basa en un subconjunto de Java Script
5. Es fácil de leer y escribir
Hemos aprendido la teoría, ahora vamos a aprender las reglas básicas de sintaxis cuando se trabaja con el formato JSON:
1. JSON utiliza pares clave-valor – {«name»: «Vasya»}
2. JSON utiliza comillas dobles alrededor de la clave
Normalmente en los tutoriales te hablan del equipo con datos sobre salario, localización y todas esas cosas. No rompamos la tradición e imaginemos un equipo formado por 5 empleados: Vasya, Sasha, Petya, Dasha, Masha. Cada empleado recibe un salario determinado, lo que significa que podemos crear nuestro propio archivo JSON (llamémoslo personal.json), que será una lista de empleados + su salario:

{
  {\i1}"personal\i"{\i} [
    {
      \{\} "nombre": {\}"Vasya",
      {\"salario": 5000
    },
    {
      \ "nombre": \{\}"Sasha",
      {\ "salario\": 6000
    },
    {
      \ "nombre": {\i1}"Petya\i"{\i}
      {\"salario": 9000
    },
    {
      {\i1}"nombre".{\i} {\i1}"Dasha".{\i}
      {\"salario": 10.000
    },
    {
      \ {\}"nombre": {\i1}"Masha".{\i}
      {\"salario": 11000
    }
  ]
}

como puedes ver – el campo nombre es responsable del nombre del empleado, y el campo salario es responsable del nivel salarial, pero el nombre de este array de datos es personal (especificado en la parte superior). Tenemos el fichero de datos, pero ¿cómo lo leemos? Para ello, veamos el código siguiente:

import json #Conecta la librería responsable de trabajar con JSON

with open('personal.json', 'r', encoding='utf-8′) as f: #abre el fichero personal.json y especifica su codificación - así podremos trabajar con letras rusas
text = json.load(f) #llenar la variable con todo lo obtenido como resultado del trabajo de la biblioteca
print(text) #poner el resultado en la pantalla

Si ejecutas el código, obtendrás algo como esto en pantalla:
{‘personal’: [{‘nombre’: ‘Vasya’, ‘salario’: 5000}, {‘nombre’: ‘Sasha’, ‘salario’: 6000}, {‘nombre’: ‘Petya’, ‘salario’: 9000}, {‘nombre’: ‘Dasha’, ‘salario’: 10000}, {‘nombre’: ‘Masha’, ‘salario’: 11000}]}

De acuerdo: es extremadamente difícil leer y analizar estos datos. Para simplificar el trabajo en tal caso, a menudo utilizamos la biblioteca pprint, que domestica la salida en tales casos. En este caso, nuestro código se verá así:

import json #conectar librería para trabajar con json
from pprint import pprint #conectar pprint para embellecer la salida de texto
 
with open({\'personal.json\', {\'r\', encoding=\'utf-8\') as f: #abrir archivo de datos
    text = json.load(f) #carga todo en una variable
    pprint(text) #poner el resultado en pantalla

Como resultado, la salida tiene el siguiente aspecto:

{\'personal\': [{\'nombre\': {\'Vasya\', {\'salario\': 5000},
              {\'name\': {\i1}'Sasha',{\i} {\i1}sueldo': 6000.{\i}
              {\'nombre': \{\}"Petya", {\}"salario": 9000},
              {\'nombre': \{\}'Dasha', {\}'salario': 10.000},
              {\'name\': {\'Masha', {\'sueldo': 11000}]}

Y ahora vamos a la salida de los datos en su forma pura – nombre del empleado + salario. Entonces el código se verá así:

import json #Conectamos la libreria
 
with open({\'personal.json\', \'r\', encoding=\'utf-8\') as f: #abrir archivo
    text = json.load(f) #carga todo lo del archivo en una variable
    print(text) #poner el resultado en pantalla
 
for txt in text[\'personal\']: #creamos un bucle que se ejecutará línea a línea
    print(txt[{'nombre\'], \':\', txt[{'salario\']) #e imprimirá en pantalla todo lo que haya en el valor de las claves nombre y salario

En realidad … se podría decir que es suficiente por hoy, pero al final te diré cómo leer cadenas en lugar de archivos json. Por ejemplo, tendremos una cadena json:
stroke = ‘{«comida»: «plátano»}’
Si intentamos mostrarlo en la pantalla, obtendremos:
{«food»: «banana»} – que en general capta el punto, pero no sigue las reglas 🙂 Para dar salida a la cadena json usamos la función loads. En forma de código, tiene el siguiente aspecto:

import json #conectar librería para trabajar con json
trazo = \'{\"comida\": \{"banana\"}\}' #cadena json
stroke_s = json.loads(stroke) #llenar la variable con el resultado de leer la cadena json
print(trazo_s) #imprime el resultado en la pantalla

Eso es todo 🙂 ¡Gracias por vuestra atención! Y sí – más adelante entenderemos cómo escribir en un archivo json 🙂
¿Alguna duda? Pregunta al correo, o escribe a Telegram 🙂 🙂

Y por cierto, aquí está el vídeo:

¿Cómo puedes saber dónde está un bot de Telegram?

¡Hola a todos! En caso de que estés escribiendo un bot para Telegram – a veces es necesario determinar dónde se encuentra exactamente el bot (grupo, chat privado, y así sucesivamente). ¿Cómo implementarlo?

En realidad – todo es muy simple. El texto del mensaje que recibe el bot indica de dónde viene el mensaje. Basta con mirar en chat.type – te dirá dónde se encuentra el mensaje:
– privado
– grupo
– supergrupo
– canal

Espero que esto haya hecho tu situación un poco más fácil 🙂 🙂 Espero que esto haya hecho tu situación un poco más fácil
Como siempre – email email si tienes alguna pregunta.

¿Cómo determinar la hora en una zona horaria diferente utilizando Python?

¡¡¡Hola a todos!!! No hace mucho me enfrenté a un problema con el trabajo con el tiempo en una zona horaria diferente. Tuve que encontrar una solución, así que la comparto – tal vez sea útil para alguien 🙂

Para resolver el problema de trabajar en una zona horaria diferente, necesitamos la librería pytz – puedes instalarla así:

pip install pytz

Después de eso, nuestro código se verá así:

from pytz import timezone #Se conecta una librería para trabajar con otras zonas horarias
ukraine_time = timezone(\'Europe/kyiv\') #Especificar la zona horaria deseada
ua_time = datetime.now(ukraine_time) #Tienes una variable que contiene la hora en la zona horaria deseada
print(\'Hora en Ucrania:\', ua_time) #Obtén el resultado :)

¡Gracias por vuestra atención! Como siempre, si tiene alguna pregunta, por favor envíeme un correo electrónico a email 🙂

Este mensaje no se ha podido mostrar en su dispositivo debido a una infracción de los derechos de autor

¡Hola a todos! Hoy vamos a aprender a deshacernos del mensaje «Este mensaje no puede mostrarse en tu dispositivo debido a una infracción de copyright», que puedes ver en Telegram si intentas acceder a datos protegidos por derechos de autor

Un poco de historia… En realidad, el motivo de este post es sencillo: me encanta leer. Leo mucho y constantemente, y no tengo intención de abandonar el hábito. Durante muchos años he leído desde dispositivos electrónicos (mi primer lector fue Casio PV-S460 – imagínate – hace casi 20 años… 🙂 ). Los aparatos han cambiado desde entonces, ¡pero leo, leo y seguiré leyendo!

Sitios como Flibusta y más tarde el bot de Telegram que me ayudaba a encontrar libros han sido de gran ayuda para mi lectura. Pero los titulares de derechos de autor se unieron a nosotros en Telegram, así que hace unos años el bot dejó de funcionar en dispositivos móviles, pero siguió funcionando en la versión de escritorio. Funcionaba así: en el ordenador, en la cesta de la compra, buscamos un libro, lo descargamos, lo subimos a un sitio de intercambio de archivos, lo descargamos en nuestros teléfonos, lo leemos y lo disfrutamos.

De acuerdo: no es muy cómodo. Por lo tanto – en caso de que intentes descargar algo en Telegram, que no está muy protegido por derechos de autor, y obtengas un error «Este mensaje no se puede mostrar en tu dispositivo debido a una infracción de derechos de autor» – haz simplemente: añade un bot a tu sala de chat, hazlo administrador, y …. ¡Llega el milagro! Todo está disponible y todo se está descargando 😉

Has leído hasta aquí y ahora quieres saber cómo crear un grupo así? Sigue leyendo 🙂
1. Crea un grupo (en tu ordenador o aplicación móvil, da igual).
2. Añade el bot deseado al grupo.
3. Concede al bot derechos de administrador. IMPORTANTE: También concedemos el derecho de añadir administradores.
4. En el chat del grupo introduce: /start – esto conectará el bot al modo de trabajo.
5. ¡Que lo disfrutes!

Eso es todo 🙂 ¡Gracias por tu atención! Si tienes alguna duda, escríbenos a email😉

Alojamiento en casa – experiencia personal, parte 1.

Hola a todos. Mi blog tiene ya más de diez años. Lo dirijo (dirigía 🙂 ) de forma muy irregular, pero en general, la afluencia diaria alcanzaba unas 500 – 700 personas. Todo iba casi bien, pero en un momento dado me pregunté: ¿cuánto estoy pagando mensualmente? <!–más

Bueno, está claro, acceso 24/7, todo está en marcha y funcionando, pero al mismo tiempo – límites, restricciones (trate de ejecutar el mismo Telegram-bot – es toda una historia) …. Y dado que el blog no traía dinero, y no me puse tales metas – poco a poco pensé en alojamiento en casa en un mini-ordenador. Muy despacio. Completamente sin prisas. Hasta que en un momento dado resultó que mi pago automático para la renovación de alojamiento se perdió (la tarjeta a la que todo estaba atado – terminó su existencia), me olvidé de él, GoDaddy de alguna manera no me recordó (o me perdí el recordatorio, lo cual es muy posible), y al final – cuando llegué a mis sentidos – todas las copias de seguridad y el sitio borrado.

Bingo, ¿qué puedo decir? (Por cierto, https://web.archive.org/ encontré algunas de las entradas de mi blog – las restauraré si es posible. Una vez más – parece que en algunos de los discos almacenados un viejo (dos años, como obsoletos) copia del sitio, así que tal vez usted puede restaurar algo y más).

He tenido que pensar en el alojamiento en casa de una manera más acelerada. Esto, por cierto, también fue influenciado por mi deseo de hacer mi casa más inteligente con Home Assistant, para lo cual había comprado previamente un mini-ordenador en Aliexpress. Tuve que comprar otro mini-ordenador (dejaré todos los enlaces un poco más tarde), y …. continuará más tarde 🙂

Determinar la distancia entre dos puntos del mapa mediante coordenadas GPS

Hola a todos Ayer me enfrenté al problema de determinar la distancia entre dos puntos del mapa utilizando coordenadas GPS. Es decir, tenemos las coordenadas iniciales de un punto, tenemos las coordenadas del punto al que tenemos que determinar la distancia – pero ¿cómo hacerlo?
<!–más

La fórmula de Haversine viene al rescate (no respondo de la exactitud del nombre – en diferentes fuentes esta fórmula se llama de diversas maneras). En realidad, no voy a entrar en la teoría – te daré un código de trabajo en Python a continuación, tal vez te resulte útil. Y sí – no pretendo originalidad en el código – es culturalmente robado de algún foro (¿por qué reinventar la rueda, ¿verdad?).

from math import radianes, cos, sin, asin, sqrt, atan2
lat1 = latitud inicial
lon1 = longitud inicial
lat2 = latitud final
lon2 = longitud final
 
lat1, lon1, lat2, lon2 = map(radianes, [lat1, lon1, lat2, lon2])
print(lat1, lon1, lat2, lon2)
# fórmula haversine
dlon = abs(lon2 - lon1)
dlat = abs(lat2 - lat1)
a = sen(dlat/2)**2 + cos(lat1) * cos(lat2) * sen(dlon/2)**2
c = 2 * atan2(sqrt(a), sqrt(1-a))
r = 6371 #Especificar si queremos la distancia en kilómetros. Si necesitamos contar en kilómetros, especificar: 3956
print(c * r)

Como siempre – si tienes alguna duda, escríbenos a email.

Script simple para cambiar la contraseña de inicio de sesión de WordPress

Hola a todos. Acabo de intentar por fin ponerme a trabajar en el blog – y… sucede – me olvidé de mi contraseña 🙂 Lo bueno – no se me olvidó el acceso al servidor, por lo que a continuación es un simple script para cambiar la contraseña de inicio de sesión de WordPress.

ID);
echo \'Contraseña actualizada\';
?>

Guarde el código en un archivo llamado, por ejemplo, reset.php – lanzarlo en el servidor, y vaya al enlace: https://вашсервер.com/reset.php. Y eso es todo – la magia está hecha, todo está hecho – el área de administración tiene ahora una nueva contraseña.

Lo principal es cambiar inmediatamente la contraseña a una más estable, y no se olvide de eliminar el archivo reset.php desde el servidor … para que nadie más cambiaría las contraseñas, excepto usted 🙂

Pensamiento – Yo quería escribir algo inteligente, pero ahora – la necesidad forzada para describir los métodos de inicio de sesión en WordPress ^)

Como siempre – si usted tiene alguna pregunta, por favor escriba a email.

La película de 1988 Géminis

Noche familiar, en el marco de la cual decidimos ver algo en Netflix. Con gran sorpresa vi la película Géminis, de 1988, en la lista de recomendaciones. Sí, la de Danny DeVito y Arnold Schwarzenegger. Es una gran comedia familiar, a pesar de su edad. Y si la comparas con el cine moderno (cosa que me frustra bastante a menudo), Géminis es literalmente una obra maestra.

¿No la has visto? Te la recomiendo ¿Ya la has visto? Vuelve a verla 🙂
Gemini 1988\

Plantilla para taladrar subenchufes con sus propias manos: rápido y preciso

Estoy completamente fuera de la vida en línea, porque estoy completamente ocupado con la renovación 🙂 Y – me encontré con un problema tan absurdo: al perforar sub-socket, no tengo absolutamente ninguna manera de hacer los agujeros de manera uniforme y sin distorsiones. Esto es especialmente cierto para los paneles de yeso y las normas alemanas: el diámetro de la sub-socket – 67 mm, y la distancia entre centros entre los zócalos – 71 mm.

En mi cabeza ayer vino una idea simple (en general, por alguna razón, los pensamientos simples y de trabajo en mi cabeza vienen muy rara vez, y con frecuencia – después de que ya está completamente cansado de resolver un problema simple) – plantilla impresa en 3D para la perforación (la impresora está en casa, así que ¿por qué debería permanecer inactivo?). Hice uno en pocos minutos y quiero compartir los resultados de mi trabajo (descargar archivo stl).

Qué hace la plantilla
Mi plantilla es una barra mínima con agujeros, sin ningún detalle extra. Te permite:
– Taladrar con precisión los centros de las tomas
– Ahorrar tiempo al instalar varios enchufes seguidos (en mi caso, tres a la vez)

Características del diseño
– Número de tomas: 3 (pero fáciles de cambiar)
– Taladros centrales: Ø6 mm
– Distancia entre centros: 71 mm

Grosor de la barra: 8 mm, anchura 22 mm – ideal para imprimir en cualquier impresora FDM

Modo de empleo
1. Coloque la plantilla contra la pared.
2. Sujete un nivel de construcción contra el tope – el horizonte es inmediatamente visible.
3. Taladre los agujeros centrales.
4. Retire la plantilla y utilice una broca de Ø68 mm para el orificio final.
5. Que aproveche 🙂

El resultado: agujeros rectos sin desalineación, ideales para encajes.

impresión 3D
– Material: PLA o PETG
– Impresión plana, capa de 0,2 mm
– Relleno 25-30%, perímetros 4
– No necesita soportes

Espero que esta plantilla te ayude al menos un poco a reducir el estrés 🙂 Como siempre – si tiene alguna pregunta, no dude en email 🙂