带有 Gremlin 属性语法错误的图形数据库

问题描述 投票:0回答:1

我正在尝试使用 Azure CosmosDB 和 Gremlin API 构建知识图。 在尝试创建顶点时,我遇到了意外错误。我正在尝试添加“人”作为节点。下面是我的简单代码:

g.addV('author').property('id','A5048784797').property('name','{name}').property('pk','pk')

变量 {name} 来自 pandas 数据框,其中一个名称是:'T. J.奥布莱恩

O'Brien 中的单个撇号会导致以下错误:

Gremlin query syntax error: Unexpected token: ')'; in input: '('author').property('id','A5048784797').property('name','T. J. O'Brien)'. @ line 1, column 77

所以我的问题是,我们如何在 gremlin 中处理这种情况。 我有 pandas 数据框,其中有一列包含(id,名称,研究所,....)元组列表。我预计这种情况会更频繁地出现。 我非常感谢您对此的见解。 谢谢你

gremlin graphdb azure-cosmosdb-gremlinapi gremlinpython
1个回答
0
投票

看来我找到了解决办法。 我正在创建要发送到 gremlin 客户端的节点列表,如下所示:

['g.addV(a1).properties(p1)',
 'g.addV(a2).properties(p2)',
 .....
]

为了创建这个,我会做类似的事情:

vertex=[]
for node in node_list():
    vertex.append(f"""g.addV('author').property('name',"{name}").property('pk','pk')""") 

技巧是使用 f""" """ 三引号。 并使用双引号“”作为名称变量

生成的代码如下所示:

['g.addV(\'author\').property(\'name'\, "T. J. O'Brien")..... ]
© www.soinside.com 2019 - 2024. All rights reserved.