熊猫to_json日期格式正在更改

时间:2020-08-24 13:38:13

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

我有此数据框,其中包含开始日期结束日期

enter image description here

,当我使用 to_json 并使用此行

转换为json时
json_data = df.to_json(orient='records')

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

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

的方法

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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')