【问题标题】:Pandas to_json date format is changingPandas to_json 日期格式正在改变
【发布时间】:2020-08-24 13:38:13
【问题描述】:

我有这个带有 start_dateend_date

的数据框

当我使用 to_json 使用这一行转换为 json 时

json_data = df.to_json(orient='records')

现在,如果我打印 json_data,则 start_date 将从 yyyy-mm-dd 转换为 integer 格式

请提出一种方法,使日期格式保持 yyyy-mm-dd 格式

【问题讨论】:

    标签: python-3.x pandas date-format to-json


    【解决方案1】:

    DataFrame.select_dtypes 用于日期时间列,转换为YYYy-MM-DD 格式并最后由DataFrame.update 覆盖原始数据:

    df.update(df.select_dtypes('datetime').apply(lambda x: x.dt.strftime('%Y-%m-%d')))
    

    那么你的解决方案工作正常:

    json_data  = df.to_json(orient='records')
    

    【讨论】:

      【解决方案2】:

      首先设置你的日期格式,然后将date_format设置为'iso'

      df['start_date'] = pd.to_datetime(df['start_date']).dt.strftime('%Y-%m-%d')
      df['end_date'] = pd.to_datetime(df['end_date']).dt.strftime('%Y-%m-%d')
      data = df.to_json(orient='records', date_format='iso')
      print(data)
      
      [{"start_date":"2020-08-10","end_date":"2020-08-16"}]
      

      【讨论】:

      • 嘿,我试过了,但是日期中有额外的内容,例如T00:00:00.000Z ...我怎样才能删除它?我希望最终输出为[{"start_date":"2020-08-10","end_date":"2020-08-16"}]
      猜你喜欢
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 2012-02-15
      • 2014-11-06
      • 2014-08-18
      • 2023-03-16
      • 1970-01-01
      • 2020-04-16
      相关资源
      最近更新 更多