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)
相关推荐
IT管理圈4 分钟前
Cursor Rules 实战指南—让AI按你的规矩写代码
python
Java后端的Ai之路9 分钟前
微调模型成本太高,用RAG技术,低成本实现AI升级
开发语言·人工智能·python·rag·ai升级
2401_8769075212 分钟前
TYPE-C插拔力过大原因与解决方法
c语言·开发语言
喵手17 分钟前
Python爬虫实战:从零构建书籍价格情报数据库(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·csv导出·构建书籍价格情报·书籍价格采集
勾股导航20 分钟前
蚁群优化算法
人工智能·pytorch·python
小锋java123426 分钟前
分享一套【优质Python源码】基于Python的Django学生就业管理系统
python
一个处女座的程序猿O(∩_∩)O30 分钟前
Python字典详解
开发语言·python
一个处女座的程序猿O(∩_∩)O39 分钟前
Go语言Map值不可寻址深度解析:原理、影响与解决方案
开发语言·后端·golang
List<String> error_P44 分钟前
蓝桥杯基础知识点:模拟-数位操作类题目
python·算法·蓝桥杯
夕除1 小时前
js--22
前端·javascript·python