When I used PostgreSQL (including NeonDB), and inserting into a Field('images', 'json') column, I noted tht it fails even when passing a properly serialized JSON string via json.dumps().
Instead of inserting the correct JSON value (e.g. ["images/pets.jpg"]), pyDAL inserts a corrupted string containing its internal list separator ('||'), resulting in:
invalid input syntax for type json
DETAIL: Token "|" is invalid.
CONTEXT: JSON data, line 1: |...what I did
Field('images', 'json')images_value = json.dumps(["images/test.jpg"])
db.mytable.insert(..., images=images_value)