Pandas to_json 日期格式正在改变

Pandas to_json date format is changing

我有这个数据框 start_dateend_date

当我使用 to_json 转换为 json 时使用此行

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

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

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

首先设置日期格式,然后将 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"}]

使用DataFrame.select_dtypes for datetime columns, convert to format YYYy-MM-DD and last overwrite original data by DataFrame.update:

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

然后你的解决方案工作正常:

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