Pandas to_json 日期格式正在改变
Pandas to_json date format is changing
我有这个数据框 start_date 和 end_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')
我有这个数据框 start_date 和 end_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')