He estado intentando ingresar en una tabla mysql usando python, lo que estoy tratando es crear una lista con todas las fechas desde abril de 2016 hasta ahora para poder insertarlas individualmente en la inserción sql, busqué pero no lo hice encuentre cómo puedo cambiar el valor por resultado de la lista (si es 1 dígito o 2 dígitos):

dates = ['2016-04-'+str(i+1) for i in range(9,30)] 

Me gustaría que i agregue un 0 cada vez que i sea un solo dígito (es decir, 1,2,3, etc.) y cuando es doble dígito para que permanezca así (es decir, 10, 11, 12, etc.)

1
Michael Ostrovsky 9 may. 2016 a las 14:50

3 respuestas

La mejor respuesta

Usando el formato de estilo C, todas las fechas en abril:

fechas = ['2016-04-% 02d'% i para i en el rango (1,31)]

Necesita rango (1,31) ya que el último valor en el rango no se usa, o use el rango (30) y agregue 1 a i.

Lo mismo usando .format ():

fechas = ['2016-04 - {: 02}'. formato (i) para i en el rango (1,31)]

0
Neapolitan 9 may. 2016 a las 12:06

Puedes usar el módulo dateutil

from datetime import datetime
from dateutil.rrule import rrule, DAILY
start_date = datetime(2016,04,01)
w=[each.strftime('%Y-%m-%d') for each in list(rrule(freq=DAILY, dtstart=start_date, until=datetime(2016,05,9)))]
0
Pavan 9 may. 2016 a las 12:02
dates = ['2016-04-'+ '{:02d}'.format(i) for i in range(9,30)]

>>> print dates
['2016-04-09', '2016-04-10', '2016-04-11', '2016-04-12', '2016-04-13', '2016-04-14', '2016-04-15', '2016-04-16', '2016-0
4-17', '2016-04-18', '2016-04-19', '2016-04-20', '2016-04-21', '2016-04-22', '2016-04-23', '2016-04-24', '2016-04-25', '
2016-04-26', '2016-04-27', '2016-04-28', '2016-04-29']
>>>
1
Yaron 9 may. 2016 a las 12:01