Gremlin python 按 gte 或 lte 过滤
Gremlin python filter by gte or lte
我试图找到一个名为 last_time_stamp 的 属性 的顶点,它在 last_time_stamp 和 last_timestamp - 1 小时的范围之间。下面的查询似乎在 AWS Neptune 中有效,但在 Gremlin Python 脚本中失败。
我认为它失败了,因为 'is' 这个词在 python 中被保留了。是否有另一种方法来编写查询以达到预期的结果?提前致谢
在 AWS Neptune 中工作:
g.V().has('private_ip_address', '10.2.55.24').values('last_time_stamp').is(gte('2018-05-01T13:06:52')).is(lte('2018-05-02T08:05:52'))
Gremlin-Python 函数:
#Need to handle public and internal on prem ips
def add_edge(label, account, interfaceid, srcaddr, dstaddr, srcport, dstport, protocol, packets, txbytes, starttime, endtime, action, logstatus):
datetime_object = datetime.strptime(starttime, '%Y-%m-%dT%H:%M:%S')
last_hour_date_time = datetime_object - timedelta(hours = 1)
endtime = last_hour_date_time.strftime('%Y-%m-%dT%H:%M:%S')
print(endtime)
v1 = g.V().has('private_ip_address', srcaddr).values('last_time_stamp').is(g(endtime)).is(lte(starttime)).toList()
v2 = g.V().has('private_ip_address', dstaddr).values('last_time_stamp').is(gte(endtime)).is(lte(starttime)).toList()
print('v1:', v1)
print('v2:', v2)
我试过的另一个例子是:
v1 = g.V().has('private_ip_address', srcaddr).has('last_time_stamp', P.gte(endtime)._and(lte(starttime))).toList()
您不需要 is()
的解决方法。在 Gremlin Python 中,与 Python 保留字冲突的步骤仅以下划线作为后缀。因此,您将使用 is_()
。
我试图找到一个名为 last_time_stamp 的 属性 的顶点,它在 last_time_stamp 和 last_timestamp - 1 小时的范围之间。下面的查询似乎在 AWS Neptune 中有效,但在 Gremlin Python 脚本中失败。
我认为它失败了,因为 'is' 这个词在 python 中被保留了。是否有另一种方法来编写查询以达到预期的结果?提前致谢
在 AWS Neptune 中工作:
g.V().has('private_ip_address', '10.2.55.24').values('last_time_stamp').is(gte('2018-05-01T13:06:52')).is(lte('2018-05-02T08:05:52'))
Gremlin-Python 函数:
#Need to handle public and internal on prem ips
def add_edge(label, account, interfaceid, srcaddr, dstaddr, srcport, dstport, protocol, packets, txbytes, starttime, endtime, action, logstatus):
datetime_object = datetime.strptime(starttime, '%Y-%m-%dT%H:%M:%S')
last_hour_date_time = datetime_object - timedelta(hours = 1)
endtime = last_hour_date_time.strftime('%Y-%m-%dT%H:%M:%S')
print(endtime)
v1 = g.V().has('private_ip_address', srcaddr).values('last_time_stamp').is(g(endtime)).is(lte(starttime)).toList()
v2 = g.V().has('private_ip_address', dstaddr).values('last_time_stamp').is(gte(endtime)).is(lte(starttime)).toList()
print('v1:', v1)
print('v2:', v2)
我试过的另一个例子是:
v1 = g.V().has('private_ip_address', srcaddr).has('last_time_stamp', P.gte(endtime)._and(lte(starttime))).toList()
您不需要 is()
的解决方法。在 Gremlin Python 中,与 Python 保留字冲突的步骤仅以下划线作为后缀。因此,您将使用 is_()
。