Uso practico de Python sobre las Fechas de la API de STEEMIT [STEEMIT al DESNUDO]

in #spanish6 years ago (edited)

Hola Amigo en esta oportunidad quiero que aprendamos juntos algunas cosas sobre como trabajar con fechas en Python.

Imagen Propia

De que va esta Publicación:

Voy a escribir algunos ejemplo de como extraer datos de las Fechas tal como salen en la API de STEEMIT con el formato que nos trae, voy a sacar específicamente Día, Mes, Año, Día de la Semana, Semana del Año y Hora del Día.

Si ya se que existen algunos artículos como python-para-impacientes+operaciones-con-fechas-y-horas pero digamos que esto es realmente Diferente, vamos a tener un ejemplo netamente practico y que mejor que darle una hojeada a la API de STEEMIT para aprender mas.


Como les dije en Publicaciones pasada, estoy revisando el API de STEEMIT con mi programa de STEEMIT al DESNUDO.

Bueno a partir de Ahora le cambiare el Nombre a mi aplicación RADIOGRAFÍA STEEMIT, que comencé hace 2 días, Quizás saque como piloto nuevamente lo que he avanzado.

Recordemos que como dice la Publicación anterior el programa de STEEMIT al DESNUDO se encarga de sacar muchos datos interesantes para nosotros formateados de una manera sencilla ya sea en una tabla o Gráfica. Por ejemplo en nuestros propios datos del blog steemit existen DATOS que no podemos ver de golpe pero si están allí, como a que hora me ven mas mis posts, cuantas personas me votan los lunes los martes a tal o cual hora con este o aquel tag o etiqueta.

Podríamos sacar una media de Votos por semana, la mejor hora para publicar, Donde hemos recaudado mas dinero, con que etiqueta, podríamos hacer nuestro propio buscador y todo tiene en común las FECHAS.

En la API STEEMIT al hacer una llamada las fechas vienen con este Formato: 

"2018-02-10T20:02:45"

Y es que no estoy muy seguro pero Json como que no tiene un método para encapsular o guardar Fechas, o tal vez sea mejor siempre pasar un String, bueno sea como sea ese es el Formato analicemoslo:

Tenemos en primer Lugar 2018 separado de guiones por lo menos las fechas, tenemos guion 02 y luego otro guion 10, pero ahora tenemos una 'T' antes del  formato de la hora que 20:02:45 lo que nos dice que es en formato de 24 Horas y no de 12, y tiene minutos y segundos!

Ya sabiendo los criterios de la Fecha que nos pasa la API podemos inferir según la metodología de Python con la Librería DATETIME que tenemos este Formato:

"2018-02-10T20:02:45" == "%Y-%m-%dT%H:%M:%S"

Podemos observar que el %Y se refiere a el Año con sus números completos es decir no cortado o abreviado, luego vemos los "-" y los ":" como dato curioso, y Por supuesto la T, debemos Observar bien para pasar un buen formato a la librería y así seguir avanzando como glosario les dejare uno pequeño, que hace referencia a lo que hemos usado:

  • %Y     Año en formato largo no abreviado.
  • %m    Mes podemos pensar en el mes del 01 al 12 o en tipo Python como una lista [01:12].
  • %d     Día del mes en Formato de 2 dígitos, en este caso 02.
  • %H  Hora en Formato del 0 al 23 como una lista Python [00:23].
  • %M Formato de minutos [00:59]
  • %S Formato de Segundos

Bueno esto esta  muy chevere pero que podemos hacer con esta hora????

  • 1--- Podemos sacar una lista de Horas con cada Post
  • 2--- Podemos Extraer la semana del año Extraña.
  • 3--- Podemos Extraer el Mes para alguna estadística Rara que inventemos.
  • 4--- Podemos Extraer el año para ver nuestro crecimiento.
  • 5--- Podemos ver cuando Vota mas  @cervantes
  • Podemos hacer muchas cosas, el cielo es el limite, como dijo Einstein si lo puedes imaginar lo puedes hacer.

Ahora vamos a Ver algo de Código en Python para hacer algunas de las operaciones que voy a mostrar mañana en mi Publicación que llamare: @torkot al Desnudo [ Steemit al Desnudo 1 ]...

Código Python,  debes ejecutarlo en Python interactivo es decir linea a linea en la consola Python o en el Idle:

Analizando el Código:

>>> from datetime import datetime, time

>>> import calendar

Calendar es de mucha ayuda siempre que vayamos a trabajar con Fechas.

>>> formato2 = "%Y-%m-%dT%H:%M:%S"

>>> hoy = "2018-02-10T20:02:45"

Fíjate en formato2 y el  hoy, necesitamos meter la T en en el Formato en Python dice un adagio Explicito es mejor que Implícito, y yo trato de vivir así, decir las cosas 3 o 4 veces explícitamente como debe ser :D, parece cosa de tontos pero es mejor siempre el Final que el Comienzo.

Ahora vamos con las salidas como las logramos:

>>> objeto_datetime = datetime.strptime(hoy, formato2)

>>> print objeto_datetime

2018-02-10 20:02:45

Primero para hacerlo mas sencillo de ver pasamos el string a un formato de fecha tiempo comprencible para python y lo mandamos  a una variable, en este caso  objeto_datetime fijate en datetime.strptime es el responsable de pasar el string a tiempo o DATE, y espera 2 valores generalmente el string y el formato (hoy, formato2).

>>> lista_dias_semana = ["Dom","Lun", "Mar", "Mié", "Jue","Vie", "Sáb"]

Esto lo creé, para que veamos como nombrar a nuestro día, pueden verlo aqui:

>>> fecha1 = objeto_datetime 

>>> dia_semana = datetime.weekday(fecha1)

Este no es el día del Mes es mas bien el Día de la semana, esto es necesario para saber que día de la semana me conviene mas publicar :D

>>> print dia_semana

5

Aquí obtenemos el día de la semana si queremos el día abreviado en letras seria así:

>>> print lista_dias_semana[ dia_semana ]

Jue

Imprime como día  el Jueves, pero el 10 no fue jueves, es por que para este calendario el día comienza en Lunes y no en domingo, igual podemos usarlo así:

>>> dia_semana = datetime.isoweekday(fecha1)

>>> ["Lun", "Mar", "Mié", "Jue","Vie", "Sáb", "Dom"]

>>> print dia_semana

6

>>> print lista_dias_semana[ dia_semana ]

Sáb

Ahora si esta bien como conclusión para esta parte isoweekday para semanas que comienzas el lunes y weekday para semanas que comienzan el Domingo.

>>> dia = objeto_datetime.day

>>> print dia

10

>>> print objeto_datetime.month

2

>>> print objeto_datetime.year

2018

Esto si nos queda mas claro :D

>>> print objeto_datetime.strftime("%W")

06

Aquí lo complicamos un poco y es que necesitamos del método strftime para saber en que semana se encuentra la fecha, entendiendo que la primera semana comienza el primer lunes. Ademas le pasamos el atributo ("%W") para obtener el numero de la semana del AÑO.

>>> print objeto_datetime.strftime("%S")

45

>>> print objeto_datetime.strftime("%H")

20

>>> print objeto_datetime.strftime("%M")

02

Esto ultimo esta mas, claro.

Espero hayas aprendido algo amigo lector, no se te olvide comentar e interactuar para que sigamos aprendiendo juntos en esta Comunidad.

Si necesitas ayuda en algo no dudes en contactarme, Saludos que Dios te Bendiga y Dios Bendiga a América.


Las imágenes son mías y fueron hechas por @dgraphic

Dios te Bendiga y que Dios Bendiga a Venezuela




Sort:  

Upvote ^_^

Amigo al hacer un Bot o ir comentando el mismo comentario en todos lados te van flagueando y necesitas tanto el SP como la reputacion para que te voten
Saludos

Coin Marketplace

STEEM 0.33
TRX 0.11
JST 0.034
BTC 66530.34
ETH 3251.57
USDT 1.00
SBD 4.36