neo4j - 如何重构此 py2neo v4 代码以使用 neo4j 3.4 时间数据类型?
问题描述
我一直试图将 date_accepted 属性添加到代表科学论文的上传节点。以前,我只会添加一个时间树节点。但是,py2neo v4 不再支持 GregorianCalendar(耻辱)。我将如何将此代码片段转换为使用一种新的时态数据类型?我看过文档和在线,但恐怕我还不够精明。
from datetime import date, datetime # ??? how to use this...
def getAccepted(year_accepted, month, day):
with open('/home/pmy/pdf/id.txt') as f:
id = f.read()
matcher = NodeMatcher(graph)
upload = matcher.match("Upload", id = id).first()
a = year_accepted+month+day
d = datetime.strptime(a, '%Y%m%d').strftime('%Y-%m-%d')
# >>> HOW TO CONVERT d TO A TEMPORAL DATA TYPE HERE? <<<
try:
graph.merge(upload)
upload['accepted_date']=d
graph.push(upload)
except IndexError as e:
print("type error: " + str(e))
pass
return 0
这可行,但它会推送日期时间字符串,而我想推送新时间时间日期......
可以将上面的 datetime 变量 d 插入到下面的查询中,这也可以,但我正在考虑这个并怀疑有更好的方法......
query='''UNWIND [date({param})] AS date RETURN date'''
result=graph.run(query, param=d).data()
print(result)
返回
[{'date': neotime.Date(2010, 10, 23)}]
所以我也许可以提取价值并将其推送到图表中?这是开发商的意图吗?文档很简洁,针对适当的程序员,所以 IDK
也许
accepted=result[0].get('date') # <class 'neotime.Date'>
并将其推到图表上?
py2neo v4 neotime 时间类型是最新的,没有太多文档或基本教程来适应 afaik。因此,这篇冗长的帖子。哪位有经验的人来评论一下?
解决方案
另一位用户在这里发布了类似的问题:https ://stackoverflow.com/a/61989193/13593049
neotime
从本质上讲,如果您想在图表中使用 Neo4j 数据类型,则需要使用该包作为您的日期和时间。(文档)
neotime
还具有将neotime
对象转换为datetime
对象的功能。
import neotime
date_accepted = neotime.Date(2020, 05, 25)
print(date_accepted.to_native())
# # datetime.date(2020, 5, 25)
推荐阅读
- email - 更改发件人的电子邮件地址
- c++ - 如何在提升循环缓冲区中一次访问所有元素?
- .net - 如何在 Azure 的 VM 上运行 .NET?
- wavesurfer.js - wavesurfer.js 尝试在区域中设置句柄样式
- asp.net-mvc - c# .net5 动态前缀url 使前缀因访问时搜索多次变化
- python - python _thread 返回第一个 arg 必须是可调用的
- angular - 如何在 Angular 服务中本地保存 Apollo 响应?
- android - Kotlin 捕获图像并将其存储在本地
- postgresql - PostgreSQL 为有序查询选择了错误的多列索引
- redis - 如果我们在 Key 上进行分区,为什么我们需要在 Redis 中使用分布式锁?