-
Notifications
You must be signed in to change notification settings - Fork 467
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
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.)?
- Python Driver
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.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working