You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL XML字段插入报错:bytea与xml类型不匹配求助

解决PostgreSQL XML字段插入类型不匹配问题

问题根源:ET.tostring()返回的是字节流(bytea类型),但你的Conteudo字段是xml类型,两者类型不匹配导致报错。

给你两种解决办法:

方法一:将字节流转为字符串

修改XML转换代码,把生成的字节流解码为UTF-8字符串:

self.xmlstr = ET.tostring(root, encoding='utf8', method='xml').decode('utf-8')

这样self.xmlstr就是标准字符串类型,执行插入时psycopg2会自动适配PostgreSQL的xml字段要求。

方法二:SQL语句中显式类型转换

如果不想修改Python代码,直接在插入SQL里把传入的字节流强制转为xml类型:

INSERT INTO "Guia"("Data","IdProjeto","Conteudo","NomeCli","enderecoCli","ContactoCli") VALUES (%s,%s,CAST(%s AS xml),%s,%s,%s)

PostgreSQL会先把字节流解析为字符串,再转换为xml类型存储。

内容的提问来源于stack exchange,提问作者user21948053

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 01:02:08