如何使用GraphSON v2而不是v3?

2024-04-27 08:38:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python运行一段代码,它使用来自Microsoft Azure的Cosmos DB。我目前正在使用gremlinpython 3.2.6和最新版本的Cosmos(microsoft azure上的默认版本),但两者之间似乎存在一些兼容性问题

当我运行我的代码时,我得到以下错误

GremlinServerError: 498: 

ActivityId : 5c05bb15-3aa1-41b8-9c10-ab3015152eab
ExceptionType : GraphMalformedException
ExceptionMessage :
    Gremlin Malformed Request: GraphSON v3 IO is not supported.
    GremlinRequestId : 5c05bb15-3aa1-41b8-9c10-ab3015152eab
    Context : global
    GraphInterOpStatusCode : MalformedRequest
    HResult : 0x80131500

我已经读到,我应该尝试使用GraphSON v2而不是V3,但不知道如何使用,有人能帮忙吗


Tags: 代码版本db错误azuremicrosoftcosmosgremlinpython
3条回答

欢迎来到这个社区。您只需要确保使用GraphSON v2的模式,因为它是Azure Cosmos DB支持的版本。检查您正在使用的json,并确保遵循支持的模式。在this link中有一些例子

在创建客户机时,将其作为mime类型提供

var client = new GremlinClient(gremlinServer:gremlinServer,mimeType:GremlinClient.GraphSON2MimeType)

默认情况下,gremlin_python使用GraphSONSerializersV3d0,因此在创建客户端时必须显式传递GraphSONSerializersV2d0

from gremlin_python.driver import client, serializer

client.Client(
    message_serializer=serializer.GraphSONSerializersV2d0(),
    password="...",
    traversal_source='g',
    url='wss://...:443/',
    username="/dbs/.../colls/...",
)

相关问题 更多 >