Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

853
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!