Python使用psycopg2读取PostgreSQL的geometry字段出现二进制乱码

1、问题

读取geometry字段出现二进制乱码

查询语句:

sql 复制代码
sql = "select * from public"

Note:

这种写法在PostgreSQL中直接查询, 没有问题,不会报错。
但是在Python中查询,如果导出的geom还是一长串的geometry 格式的话, POINT、LineString等矢量数据会显示为二进制或者字符串。

2 解决办法

如果想要达到MySQL中的查询效果,需要对POINT等矢量数据加上ST_ASTEXT:将几何数据转换成可读的文本类型。得到的是有多个经纬度的,是POLYGON。正确的查询语句:

sql 复制代码
sql = "select st_astext(geom) from public"

3 插入geometry字段

想要把ST_ASTEXT 读出来的数据又存回到数据库表的geometry数据类型的字段时,我们需要使用ST_GeomFromText,:根据字符串构建几何。

sql 复制代码
sql = """INSERT INTO lane(lane_id, link_id, phase_id, width, length, max_speed, geom) VALUES (%s, %s, %s, %s, %s, %s, ST_GeomFromText(%s))"""
        my_pg.sql_insert(sql, lane)
相关推荐
Nebula_g41 分钟前
JavaSE加强:IO流
java·开发语言·windows·stream·javase
朝朝辞暮i8 小时前
VLA 系统学习第 4 课:一个 Batch 进入神经网络后,模型到底是怎么“学会”的?
人工智能·python·神经网络·vla
Ada's8 小时前
【计算机基础系列】003:Python数据结构
开发语言·数据结构·python
2601_962885729 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪9 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
倔强的石头10611 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
传人once11 小时前
页面中心圆圈放大效果如何写
开发语言·javascript·ecmascript
NeilYuen11 小时前
【C++】STL源码仿写(二):vector
开发语言·c++
蜗牛互联网11 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
statistican_ABin12 小时前
中国国际旅游发展分析报告—基于世界银行国际旅游数据的多维度分析
python·机器学习·旅游