以下是我想在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的依赖,但似乎并非所有功能都可以传输。
答案 0 :(得分:3)
Neo4j本身并不支持日期时间,我相信py2neo会默认将日期时间转换为以前版本中的字符串。
我的解决方法是在.isoformat()
个对象上调用datetime
方法,将它们作为字符串插入数据库。
答案 1 :(得分:0)
Node4j没有日期或时间的概念作为对象的属性;所以我怀疑会有datetime
类型的支持。您应该存储epoch值:
import calendar
import time
epoch = calendar.timegm(time.gmtime())