这就是示例 pandas 框架的样子。
第一列的
dtype
为 datetime64[ns]
。但是当我用 to_json(orient='records')
转换数据框时,这就是我得到的。
[{"date":1494547200000,"item_nbr":96995,"prediction":85.0903691434},
{"date":1494547200000,"item_nbr":99197,"prediction":110.2331549721},
{"date":1494547200000,"item_nbr":103501,"prediction":179.3874884163},
{"date":1494547200000,"item_nbr":103520,"prediction":150.7441153415},
{"date":1494547200000,"item_nbr":103665,"prediction":163.3215086129}]
那些巨大的数字
date
是多少,它们来自哪里?我尝试使用 unix 时间戳对其进行转换,但即使如此,它也超出了范围。
将
date
列转换为 str
以避免转换为毫秒:
>>> df1.astype({'date': str}).to_json(orient='records', indent=2)
[
{
"date":"2017-05-12",
"item_nbr":96995,
"prediction":85.0903691434
},
{
"date":"2017-05-12",
"item_nbr":99197,
"prediction":110.2331549721
},
{
"date":"2017-05-12",
"item_nbr":103501,
"prediction":179.3874884163
},
{
"date":"2017-05-12",
"item_nbr":103520,
"prediction":150.7441153415
},
{
"date":"2017-05-12",
"item_nbr":103665,
"prediction":163.3215086129
}
]
函数
pandas.DataFrame.to_json
有一个参数 date_format{None, 'epoch', 'iso'}
日期转换类型。
epoch
代表纪元毫秒iso
ISO8601默认值取决于方向。对于
orient='table'
,默认为 'iso'
。对于所有其他方向,默认值为 'epoch'
。
更多详情请查看官方文档