I am trying to build a knowledge graph with Azure CosmosDB with Gremlin API. While trying to create vertex, I came across an unexpected error. I am trying to add 'person' as a node. Below is my simple code:
g.addV('author').property('id','A5048784797').property('name','{name}').property('pk','pk')
The variable {name} comes from pandas dataframe and one of the name is: 'T. J. O'Brien'
The single apostrophe in O'Brien results into following error:
Gremlin query syntax error: Unexpected token: ')'; in input: '('author').property('id','A5048784797').property('name','T. J. O'Brien)'. @ line 1, column 77
Client submission:
from gremlin_python.driver import client
client = client.Client(
url=f"{COSMOS_GREMLIN_ENDPOINT}",
traversal_source="g",
username="*****",
password=f"{COSMOS_GREMLIN_KEY}",
message_serializer=serializer.GraphSONSerializersV2d0(),
)
So my question, is how can we handle this situation in gremlin. I have pandas dataframe with a column containing list of tuple of (id, name, institute,....). I expect this situation to appear more frequently. I would really appreciate your insights in this. Thank you
It looks like I found a solution. I am creating a list of nodes to be sent to the gremlin client as:
In order to create this I would do something like:
The trick is to use f""" """ triple quotes. and use double quotes " " for name variable
The resulting codes looks like: