在BOLT neo4j-driver中使用python datetime类型会引发错误。解决方法可用?

时间:2016-06-16 01:55:11

标签: python neo4j py2neo

以下是我想在BOLT下运行的代码的简化示例,我能够执行uner py2neo

timeCreated = datetime.datetime(year=2016, month=6, day=15, hour=23)
driver = GraphDatabase.driver("bolt://localhost", auth=basic_auth("neo4j", "password"))
session = driver.session()
stmt = 'CREATE (y:Year) SET y.timeCreated = {time}'
session.run(stmt, {"time": timeCreated})

timeCreated是python datetime对象。我收到一条错误消息,指出无法使用datetime对象:

 ValueError: Values of type <class 'datetime.datetime'> are not supported). 

有解决方法吗?它将来会得到支持吗?我想使用BOLT驱动程序并减少对py2Neo的依赖,但似乎并非所有功能都可以传输。

2 个答案:

答案 0 :(得分:3)

Neo4j本身并不支持日期时间,我相信py2neo会默认将日期时间转换为以前版本中的字符串。

我的解决方法是在.isoformat()个对象上调用datetime方法,将它们作为字符串插入数据库。

答案 1 :(得分:0)

Node4j没有日期或时间的概念作为对象的属性;所以我怀疑会有datetime类型的支持。您应该存储epoch值:

import calendar
import time

epoch = calendar.timegm(time.gmtime())