| From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
|---|---|
| To: | Christophe Pettus <xof(at)thebuild(dot)com>, psycopg(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Overriding default adapters in psycopg |
| Date: | 2025-11-16 17:25:42 |
| Message-ID: | f35c63af-037f-46c5-a99f-9bb514681cf7@aklaver.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | psycopg |
On 11/16/25 08:56, Christophe Pettus wrote:
> Hi!
>
> I am attempting to override the default adapters for JSON and JSONB in psycopg (3), but I am not quite sure how to go about it (I'm testing using orjson for serialization and deserialization). This doesn't appear to work:
>
>> class CyanJSONBLoader(Loader):
>> def load(self, data):
>> return orjson.loads(data)
>>
>> psycopg.adapters.register_loader("jsonb", CyanJSONBLoader)
>>
>> class CyanJSONBDumper(Dumper):
>> def dump(self, obj):
>> return orjson.dumps(obj)
>>
>> psycopg.adapters.register_dumper("jsonb", CyanJSONBDumper)
>>
>
> The calls work, but the dump/load functions are never called.
I think you might need to use:
https://www.psycopg.org/psycopg3/docs/basic/adapt.html#adapt-json
>
> Thanks!
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Adrian Klaver | 2025-11-16 17:30:59 | Re: Overriding default adapters in psycopg |
| Previous Message | Christophe Pettus | 2025-11-16 16:56:07 | Overriding default adapters in psycopg |