omaurel-socha opened a new issue, #1229:
URL: https://github.com/apache/age/issues/1229

   **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. 
   
   [I have submitted a PR to fix the 
issue](https://github.com/apache/age/pull/1228)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to