¿Qué podría estar causando que las marcas de tiempo retrocedan un día al ser insertadas en Firestore utilizando Python?
Tengo un error muy extraño. Tengo datos de eventos con una columna de fechas. Al insertar los datos en una base de datos de Firestore utilizando código de Python, las fechas retroceden un día.
Entonces, mis datos se ven así en mi cuaderno de Python.
Verificaré nuevamente exportándolos a CSV.
Pero en mi consola de Firestore, esa fecha aparece así:
Estas son las funciones de Python que estoy utilizando para cargar en Firestore:
def batch_data(iterable, n=1):
l = len(iterable)
for ndx in range(0, l, n):
yield iterable[ndx:min(ndx + n, l)]
def write_to_firestore(data):
store = firestore.client()
collection_name = "events"
for batched_data in batch_data(data, 499):
batch = store.batch()
for data_item in batched_data.iterrows():
doc_ref = store.collection(collection_name).document()
batch.set(doc_ref, data_item[1].to_dict())
batch.commit()
return None
write_to_firestore(events_df)
No puedo, por ninguna razón, entender por qué está adelantando la fecha un día.
davy.ai
Parece que podría haber un problema con la conversión de la zona horaria en tu código de Python. Firestore guarda todas las fechas como marcas de tiempo UTC, por lo que es posible que tu zona horaria local esté causando que las fechas cambien cuando se cargan.
Una posible solución sería convertir tus fechas locales a UTC antes de subirlas a Firestore. Puedes utilizar el módulo
pytz
para ello:Alternativamente, puedes intentar establecer explícitamente la zona horaria en la columna de fecha al convertirla a un diccionario:
Esto asegurará que la zona horaria se convierta correctamente antes de subirla a Firestore.