是否可以使用Python将日期以DateTime格式写入JSON而无需将其转换为字符串

时间:2018-09-07 05:15:07

标签: json python-3.x data-extraction

我想知道是否可以用JSON将日期写为DateTime格式。 我已经在互联网上关注了很多链接,但是到处都将日期转换为string(str)以便将其写入JSON文件。

我使用了以下代码:

[zk: localhost:2181(CONNECTED) 20] ls /
[fromInspector, zookeeper, fromcli]
[zk: localhost:2181(CONNECTED) 21] get /fromcli

cZxid = 0x23
ctime = Fri Sep 07 11:11:39 IRDT 2018
mZxid = 0x23
mtime = Fri Sep 07 11:11:39 IRDT 2018
pZxid = 0x23
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
[zk: localhost:2181(CONNECTED) 22] get /fromInspector

cZxid = 0x24
ctime = Fri Sep 07 11:12:01 IRDT 2018
mZxid = 0x24
mtime = Fri Sep 07 11:12:01 IRDT 2018
pZxid = 0x24
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0

然后将其称为:

import json
fileName='json_output.json'
def writeToJSONFile(data):
    with open(fileName, 'a+') as fp:
        json.dump(data, fp, indent=4, default=str)

上面的代码能够将日期以字符串格式写入JSON文件。

我已经通过链接了:

How to overcome "datetime.datetime not JSON serializable"?

JSON datetime between Python and JavaScript

我只想知道是否有可能将日期存储为日期时间格式?

1 个答案:

答案 0 :(得分:0)

简单的答案是“否”,JSON没有本地日期时间表示,因此它将显示为字符串;但是,如果您使用一致同意的标准,则接收方应用程序可以选择将该变量解析为datetime对象。如果您不知道他们可能会同意哪种格式,我建议您将其设置为标准ISO 8601(UTC组合的日期和时间),这样接收方就可以对其进行解析,并且无论时区如何都保留正确的值