Я хочу загрузить данные OSM в базу данных PostgreSQL, используя скрипт Python. Когда я пытаюсь этот скрипт Python, он не загружает данные OSM в базу данных. Кто-нибудь может направить меня? Я знаю, как загружать данные в PostgreSQL с помощью осмоса, но в настоящее время я ищу что-то с использованием Python.
import psycopg2
from osgeo import ogr
# connect to the database
connection = psycopg2.connect(user="postgres",
password="password",
host="localhost",
database="example")
# create cursor
cursor = connection.cursor()
cursor.execute("DROP TABLE IF EXISTS trial1")
cursor.execute("CREATE TABLE trial1 (id SERIAL PRIMARY KEY, geom Geometry)")
cursor.execute("CREATE INDEX trial1_index ON trial1 USING GIST(geom)")
print("Successfully created ")
connection.commit()
# define OSMfile path
osm = ogr.Open("pedestrian.osm")
layer = osm.GetLayer(1)
# delete the existing contents of the table
cursor.execute("DELETE FROM trial1")
print(str(layer.GetFeatureCount()))
for i in range(layer.GetFeatureCount()):
feature = layer.GetFeature(i)
# Get feature geometry
geometry = feature.GetGeometryRef()
wkt = geometry.ExportToWkt()
# Insert data into database,
cursor.execute("INSERT INTO trial1 (geom) VALUES (ST_GeomFromText(" + "'" + wkt + "', 4326))")
print("Data inserted successfully")
connection.commit()
ожидаемый результат: этот код должен создать таблицу в базе данных, а также импортировать в нее данные из данного файла. В настоящее время этот код просто создает таблицу. После создания таблицы он не выдает ошибку, он говорит, что процесс завершен с кодом выхода 0.