【发布时间】:2018-10-22 05:56:43
【问题描述】:
所以,我正在用 pandas 读取 xlsx 文件,然后解析日期时间(excel 是浮点数)
然后我需要把它解析成Json,我遇到了一些问题。
第 1 步(使用 to_json() 解析之前)
df = pandas.read_excel('test.xlsx', names=['date', 'value', 'source'])
df['date'] = pandas.to_datetime(df['date'], format='%b %d %Y.%f')
print(df)
回报是
date value source
0 2012-05-22 1 xxxxxxxxxxxxxxxxxxxx
1 2012-05-25 1 xxxxxxxxxxxxx
2 2012-05-30 1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3 2012-06-01 1 xxxxxxxxxx
4 2012-06-08 1 xxxxxxxxxxxxxxxxx
一切似乎都很好,然后我得到了 o to_json
payload = df.to_json()
而回报是
{"date":{"0":1337644800000,"1":1337904000000,"2":1338336000000,"3":1338508800000,"4":1339113600000},"value":{"0":1,"1":1,"2":1,"3":1,"4":1},"source":{"0":"xxxxxxxxxxxxxxx","1":"xxxxxxxxxx","2":"xxxxxxxxxxx","3":"xxxxxxxxxxxxxxxx","4":"xxxxxxxxxxxxxxx"}}
那么我做错了什么?我在 to_json() 上缺少 args 吗?哈尔普请:c
我需要它是这样的:
[{"date":"2012-05-22","value":1,"source":"xxxxxxxxxxxxxxxxxxxx"},
{"date":"2012-05-25","value":1,"source":"xxxxxxxxxxxxxxxxxxxx"},
{"date":"2012-05-30","value":1,"source":"xxxxxxxxxxxxxxxxxxxxx"},
{"date":"2012-06-01","value":1,"source":"xxxxxxxxxxxxxxxxxxxx"},
{"date":"2012-06-08","value":1,"source":"xxxxxxxxxxxxxxxxxxxxxx"}]
【问题讨论】:
-
看起来您的日期时间对象被强制转换为 unix 时间戳。这是一个问题吗?你想要它是什么?字符串?然后只需执行
df['date'] = pandas.to_datetime(df['date'], format='%b %d %Y.%f').astype(str)并照常进行。 -
已编辑!对不起:p
-
您也可以使用
df.to_json(orient='records')来获得所需的输出。 -
@GabrielFernandes 是的,在我写的答案中已经提到过。干杯。
标签: python json string pandas datetime