【发布时间】:2018-12-05 04:16:32
【问题描述】:
我将 JanusGraph 与标准 python gremlin 绑定一起使用,我想在顶点/边上设置 float[] 属性。但是,Tinkerpop driver for Python 似乎无法做到这一点。
例如,这里有一个脚本直接在 Groovy 中运行的示例:
val = [1.2, 3.4, 5.6]
_client.submit("g.V(4200).property('a', %s as float[])" % val).all().result()
这是使用 gremlin python 库时失败的代码:
val = [1.2, 3.4, 5.6]
g.V(4200).property('a', val).next()
错误在哪里:
GremlinServerError: 500: Property value [[1.2, 3.4, 5.6]] is of type class java.util.ArrayList is not supported
该错误可能是因为请求在 GraphSON 中由 python 驱动程序序列化 - 并且 GraphSON 支持具有不同类型元素的数组,因此场景后面的 Java 代码将值读取为 java.util.ArrayList 确实不能转换为 @ 987654327@.
问题是 - 除了编写显式查询字符串之外,还有什么健全的方法可以做到这一点?
【问题讨论】:
-
另外,我知道我可以绑定数组的python值,而不是直接格式化它。但这并没有起到任何作用。
标签: python gremlin tinkerpop tinkerpop3 janusgraph