class op 2022-03-22 15:21
浏览 59
已结题

使用geopandas将shp导入postgresql数据库出错

def shp2pgsql(file, engine):
file_name = os.path.split(file)[1]
tbl_name = file_name.split('.')[0] # 表名
map_data = gpd.GeoDataFrame.from_file(file)
spatial_ref = map_data.crs.srs.split(':')[-1] # 读取shp的空间参考
map_data['geometry'] = map_data['geometry'].apply(
lambda x: WKTElement(x.wkt, spatial_ref))
map_data.to_sql(
name=tbl_name,
con=engine.connect(),
if_exists='replace',
chunksize=1000,
dtype={'geometry': Geometry(
geometry_type='GEOMETRY', srid=spatial_ref)},
method='multi',
schema='public'
)
错误:
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.DuplicateTable) 错误: 关系 "idx_tbl_name_geometry" 已经存在
[SQL: CREATE INDEX idx_tbl_name_geometry ON public.tbl_name USING gist (geometry)]
shp文件就是从阿里geo上面下载的json文件转成的 python3.8的环境 一直报这个错误, 有没有遇到过的 解决了的

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 3月30日
    • 创建了问题 3月22日

    悬赏问题

    • ¥15 有偿求苍穹外卖环境配置
    • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
    • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
    • ¥15 clousx6整点报时指令怎么写
    • ¥30 远程帮我安装软件及库文件
    • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
    • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
    • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
    • ¥15 Android studio 无法定位adb是什么问题?
    • ¥15 C#连接不上服务器,