Python 尝试使用psycopg2插入时,获取列的类型为jsonb[],但表达式的类型为text[]
我正在使用Python 尝试使用psycopg2插入时,获取列的类型为jsonb[],但表达式的类型为text[],python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我正在使用execute\u values在其他表上插入许多表的内容,当我收到其他错误时,我已经将dict的适配器设置为json,但是我不知道如何处理这个错误: psycopg2.ProgrammingError:列“rules”的类型为jsonb[],但表达式的类型为text[] 第1行:…UES(1,'tturxvrtgvvsrqgzsedcoyqujakyepjordrbjdw',数组['{“i…” 处理这个问题的唯一方法是这样的,但我需要处理每一列 也许有办法创建一个新的适配器,但我无法
execute\u values
在其他表上插入许多表的内容,当我收到其他错误时,我已经将dict
的适配器设置为json
,但是我不知道如何处理这个错误:
psycopg2.ProgrammingError:列“rules”的类型为jsonb[],但表达式的类型为text[]
第1行:…UES(1,'tturxvrtgvvsrqgzsedcoyqujakyepjordrbjdw',数组['{“i…”
处理这个问题的唯一方法是这样的,但我需要处理每一列
也许有办法创建一个新的适配器,但我无法通过文档实现这一点
register\u适配器(dict,Json)
执行_值(
目标光标,
f''
在冲突时插入{t}值%s不执行任何操作;
''',
记录,
)
有没有一种自动处理方法,比如寄存器适配器
?我已经找到了答案,因为我知道我可以使用模板
参数,如下所示:
执行_值(
目标光标,
f''
在冲突时插入{t}值%s不执行任何操作;
''',
记录,
template=“(%s,%s,%s::jsonb[],%s,%s)”#请求的占位符数量相同
)