首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在gremlinpython中添加特定类型的属性?

如何在gremlinpython中添加特定类型的属性?
EN

Stack Overflow用户
提问于 2021-02-12 21:18:14
回答 1查看 54关注 0票数 0

目前,我正在尝试通过gremlinpython以编程方式从graph导入一个大图形。我对gremlin和我可能使用它的端点比较陌生。我目前面临的问题是,节点/边中的属性可以有多种类型。(例如:或None-类型| ->、Long等)

我没有注意到将它导入到这个gremlin-server中时出现错误(这是不是称为Apache TinkerGraph-Server?我该怎么说呢?)。似乎相同属性的类型可以是任意的。

但是,在使用JanusGraph时,我收到多个错误:gremlin_python.driver.protocol.GremlinServerError: 500: Value [XXX] is not an instance of the expected data type for property key [YYY] and cannot be converted. Expected: class <SomeClass>, found: class <SomeOtherClass>

例如,执行:

代码语言:javascript
复制
conn = DriverRemoteConnection("ws://localhost:8182/gremlin", "g")
remote_graph = traversal().withRemote(conn)

remote_graph.addV().property("test", 10000).next()
remote_graph.addV().property("test", 100000000000000000000000).next()  # <- Causes an error on JanusGraph

我可以将一些属性转换为其他数据类型(Bool/None-Type-> -1,0,1),这样就可以避免这个错误。但是我不确定我应该如何处理上面提供的示例。有没有一种方法可以显式地设置属性的类型(至少是数值类型),以便服务器知道将其存储为Long/BigInt而不是Int?特别是因为在python3中,long(/bigint)和int之间不再有区别。

那么有没有类似下面这样的东西呢?例如:

代码语言:javascript
复制
remote_graph.addV().property("test", 10000).asLong().next()
remote_graph.addV().property("test", 10000, <Type: Long>).next()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 21:43:37

Gremlin确实有一个用于确保Java Longspecial class。您可以在给定适当导入的情况下执行long(10000),如:from gremlin_python.statics import long

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66172572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档