如何解析psycopg2中的复杂数组/元组数据类型?

时间:2018-10-16 03:26:12

标签: python-3.x postgresql psycopg2

我有一些SQL查询,它们可以返回元组数组,其中元组可以再次是(理论上)无限数量的嵌套级别,并且事先结构未知的数组。

返回类型示例:

select (1, 'abc', array[123, 456], array['123', '456'],
        array[(7, array[1,2,3]), (8, array[7,8,9])])

唯一已知的是,在数组中,所有元组元素的长度都相同,并且每个位置的元组元素的类型都相同。

psycopg2驱动程序返回诸如字符串之类的对象。它似乎也有something可以处理像我这样的情况,但是我不知道如何在或多或少的复杂情况下使用它。

P.S。有一个beautiful library可以开箱即用地处理此类数据类型,但目前看来已经废弃了。但是,从它不需要任何“转换器”就可以工作的事实出发,我得出结论,对组合类型的描述是在协议级别从服务器传输到客户端的。为什么像psycopg2或asyncpg之类的库需要转换器才能在没有它们的情况下完成操作?

0 个答案:

没有答案