Describe the bug
I am trying some cypher queries using the python driver.
When iterating the results of a query, The function .toJson() returns a JSON string containing a trailing comma in the "properties" field.
As a result, the JSON is invalid and it is not possible to convert it into a dict using json.loads() for example.
How are you accessing AGE (Command line, driver, etc.)?
What data setup do we need to do?
def testJson(self):
print("\n------------------------------")
print("Test 6: Testing JSON output.....")
print("--------------------------------\n")
ag = self.ag
with ag.connection.cursor() as cursor:
try:
ag.cypher(cursor, "CREATE (n:Person {name: %s}) ", params=('Joe',))
ag.cypher(cursor, "CREATE (n:Person {name: %s}) ", params=('Jack',))
ag.cypher(cursor, "CREATE (n:Person {name: %s}) ", params=('Andy',))
ag.cypher(cursor, "CREATE (n:Person {name: %s}) ", params=('Smith',))
ag.cypher(cursor, "CREATE (n:Person {name: %s}) ", params=('Tom',))
# You must commit explicitly
ag.commit()
except Exception as ex:
print(ex)
ag.rollback()
print(" -------- TESTING JSON #1 --------")
cursor = ag.execCypher("MATCH (n) RETURN n")
for row in cursor:
# json.loads will fail if the json str is not properly formatted
as_dict = json.loads(row[0].toJson())
print("Vertex.toJson() returns a correct json string.")
What is the command that caused the error?
for row in cursor:
as_dict = json.loads(row[0].toJson())
Expected behavior
The correct behavior would return valid JSON when calling .toJson().
Additional context
The problem originates in _nodeToJson(). The way the buffer writing iteration is done in the properties field will always add a trailing comma.
I have submitted a PR to fix the issue
Describe the bug
I am trying some cypher queries using the python driver.
When iterating the results of a query, The function .toJson() returns a JSON string containing a trailing comma in the "properties" field.
As a result, the JSON is invalid and it is not possible to convert it into a dict using json.loads() for example.
How are you accessing AGE (Command line, driver, etc.)?
What data setup do we need to do?
What is the command that caused the error?
Expected behavior
The correct behavior would return valid JSON when calling .toJson().
Additional context
The problem originates in _nodeToJson(). The way the buffer writing iteration is done in the properties field will always add a trailing comma.
I have submitted a PR to fix the issue