防止 Pandas to_json() 向日期对象添加时间组件

use*_*044 4 python date python-2.7 pandas

我有一个包含一些日期对象的数据框。我需要转换为 json 以在 JavaScript 中使用,这需要 YYYY-MM-DD,但to_json()不断添加时间组件。我已经看到了许多首先转换为字符串的答案,但这是循环的一部分,每个查询包含许多列(针对 SO 问题进行了简化),并且我不想将每个列转换硬编码为有很多。

import pandas as pd
from datetime import date
df = pd.DataFrame(data=[[date(year=2018, month=1, day=1)]])    
print df.to_json(orient='records', date_format='iso', date_unit='s')
Run Code Online (Sandbox Code Playgroud)

输出:

[{"0":"2018-01-01T00:00:00Z"}]
Run Code Online (Sandbox Code Playgroud)

期望输出:

[{"0":"2018-01-01"}]
Run Code Online (Sandbox Code Playgroud)

wim*_*wim 7

Pandas 目前没有这个功能。有一个关于此的未决问题,您应该订阅该问题,以防date_format在未来版本中添加更多参数选项(这似乎是一个合理的功能请求):

无法使用 to_json 只写超出日期时间的日期 #16492

在转储 json 之前手动将相关列转换为字符串可能是最好的选择。