我正在尝试使用 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 客户端的节点列表,如下所示:
['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")..... ]