Я использую JanusGraph со стандартной привязкой python gremlin, и я хотел бы установить свойство float[]
для вершины / ребра.Однако драйвер Tinkerpop для Python , похоже, не в состоянии это сделать.
Например, вот пример со скриптом, работающим непосредственно в Groovy:
val = [1.2, 3.4, 5.6]
_client.submit("g.V(4200).property('a', %s as float[])" % val).all().result()
А вот код, который дает сбой при использовании библиотеки python gremlin:
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
, которое действительно не может быть приведено к float[]
.
Вопрос в том,Есть ли какой-нибудь вменяемый способ сделать это, кроме написания явных строк запроса?