Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

855
Vistas
¿Cómo exportar el marco de datos de pandas a json y conservar el formato de fecha y hora original?

Estoy trabajando en un conjunto de datos y apliqué el método to_json() para exportar un marco de datos de pandas en un archivo json. Luego usaré este archivo json para cargarlo en MongoDB. Sin embargo, me doy cuenta de que el formato de fecha y hora se convirtió a la marca de tiempo de época. ¿Cómo conservo el formato de fecha y hora mientras exporto a un archivo JSON y cargo el archivo json en MongoDB? Además, no quiero campos nulos en la salida json.

d.f.:

 user_id datetime 0 69490717 [{'checkin_date': 2021-02-01 00:00:00}] 1 67125777 [{'checkin_date': 2021-02-01 00:00:00}] 2 62747294 NaN 3 63216896 [{'checkin_date': 2021-02-01 00:00:00}] 4 51466797 [{'checkin_date': 2021-01-31 00:00:00}] ... ... ... 96 82758550 NaN 97 44662827 NaN 98 36376189 [{'checkin_date': 2021-01-18 00:00:00}] 99 71910948 [{'checkin_date': 2021-01-18 00:00:00}, {'checkout_date': 2021-01-20 00:00:00}] 100 54620533 NaN

Fragmento de salida json:

 [{"user_id":62507249,"datetime":[{"checkin_date":1612051200000},{"checkout_date":1612051200000}]}, {"user_id":69546481,"datetime":[{"checkin_date":1612051200000}]}, ......]

A continuación se muestra mi código para convertir a json:

 jsonresult = df.T.apply(lambda row: row[~row.isnull()].to_json()) json_wrapped = "[%s]" % ",".join(jsonresult) # write JSON to file with open('jsonresult.json', 'w') as f: f.write(json_wrapped)
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Debe convertir su columna de fecha y datetime en una string usando Series.astype :

 df['datetime'] = df['datetime'].astype(str)

Además, su código para convertir esto a json es innecesario. Puedes hacerlo a continuación:

 jsonresult = df.to_json(orient='records')
over 4 years ago · Santiago Trujillo Denunciar

0

Creo que necesita date_format='iso' en DataFrame.to_json y para eliminar filas con valores faltantes es posible usar DataFrame.dropna :

 a = [{"user_id":1,"datetime":[{"checkin_date":pd.Timestamp('2021-02-01 00:00:00')}, {"checkout_date":pd.Timestamp('2021-02-01 00:00:00')}]}, {"user_id":2,"datetime":[{"checkin_date":pd.Timestamp('2021-02-01 00:00:00')}]}, {"user_id":4,"datetime": np.nan}] df = pd.DataFrame(a) print (df) user_id datetime 0 1 [{'checkin_date': 2021-02-01 00:00:00}, {'chec... 1 2 [{'checkin_date': 2021-02-01 00:00:00}] 2 4 NaN

 jsonresult = df.dropna(subset=['datetime']).to_json(date_format='iso', orient='records') print (jsonresult) [{"user_id":1,"datetime":[{"checkin_date":"2021-02-01T00:00:00.000Z"}, {"checkout_date":"2021-02-01T00:00:00.000Z"}]}, {"user_id":2,"datetime":[{"checkin_date":"2021-02-01T00:00:00.000Z"}]}]

 dictresult = df.dropna(subset=['datetime']).to_dict(orient='records') print (dictresult) [{'user_id': 1, 'datetime': [{'checkin_date': Timestamp('2021-02-01 00:00:00')}, {'checkout_date': Timestamp('2021-02-01 00:00:00')}]}, {'user_id': 2, 'datetime': [{'checkin_date': Timestamp('2021-02-01 00:00:00')}]}]
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda