python中使用geopandas将geojson批量入postgis库

具备python开发环境后,使用geopandas库读取geojson文件,然后使用sqlalchemy库将数据入库到postgis中。

to_postgis方法中的schema默认为public

import geopandas as gpd
import os
from sqlalchemy import create_engine

inputFolder = r'D:\项目\处理结果'
engine = create_engine("postgresql://username:password@ip:port/databasename")

# 处理文件夹
def dealJsonFolder(inputFolder):
    # print(inputFolder)
    # 检查输入文件夹,如果不存在则返回
    if not os.path.exists(inputFolder):
        print("检查输入文件夹不存在!!!")
        return

    for item in os.listdir(inputFolder):
        # print(item)
        file_name, file_extension = os.path.splitext(item)
        # 如果是文件夹则递归执行
        if (file_extension == ''):
            dealJsonFolder(os.path.join(inputFolder, item))
        # 如果扩展名为geojson则执行下面的函数
        elif (file_extension.lower() == '.geojson'):
            file_full_name = os.path.join(inputFolder, item)
            json2Postgres(file_full_name, file_name)


def json2Postgres(path, name):
    print(name, "准备入库")
    testjson = gpd.read_file(path)
    testjson.to_postgis(name=name, schema="geom_test", con=engine, if_exists="replace", chunksize=1000)

#json2Postgres(r"D:\项目\处理\合并\node_zhutangzhen.geojson","node_zhutangzhen")
dealJsonFolder(inputFolder)
print("处理完成")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值