【问题标题】:print gremlin query being run without repeating code在不重复代码的情况下运行打印 gremlin 查询
【发布时间】:2018-09-30 03:45:45
【问题描述】:

我想打印查询正在运行以进行调试。
如果不重复查询两次,一次作为要打印的字符串,一次是实际执行它,我无法找出最好的方法。

我试过了:
add_vertex_query = "g.addV('addvqueryLabel').next()"
print("going to run query: %s"%(add_vertex_query))
add_vertex_query_res = add_vertex_query
print("add_vertex_query result: %s"%(add_vertex_query_res))
但这不起作用,因为它只是在第三行重新分配查询字符串而不是实际运行它

顺便说一句,我在 Neptune 中运行我的图表,所以如果解决方案与 Neptune 兼容,那就太好了

更新
我找到了一个替代方案(虽然并不理想):

query = g.V().valueMap(True)
print("query: %s"%(query))
result_list = query.toList()
print("result: %s"%(result_list))

这给了
query: [['V'], ['valueMap', True]]
在打印输出中,可以理解为
"g.V().valueMap(True)"
但理想情况下,最好的情况是我可以记录/打印我想要的整个查询:
g.V().valueMap(True).toList()
无需像

那样在代码中复制字符串
query_string = "g.V().valueMap(True).toList()"
print("running query: %s"%(query_string))
res = g.V().valueMap(True).toList()
print("results: %s"%(res))

【问题讨论】:

    标签: gremlin amazon-neptune


    【解决方案1】:

    用Python解决了eval

    query_string = "g.V().valueMap(True).limit(5).toList()"
    print("running query: %s ..."%(query_string))
    res_list = eval(query_string)
    [print("result %s: %s"%(i, res)) for i, res in enumerate(res_list, 1)]
    

    【讨论】:

      猜你喜欢
      • 2018-08-10
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2015-01-21
      • 2018-11-20
      相关资源
      最近更新 更多