Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import fiona
- import shapely.geometry
- velov = fiona.open(shp_file)
- print(velov.schema)
- params_str = ""
- for key, value in velov.schema["properties"].items():
- vtype = "character varying(80)" if value == "str:80" else value
- params_str += key + " " + vtype + ","
- srid = velov.crs["init"].split(":")[1]
- params_str += f"geom geometry(Point, {srid})"
- engine.execute("DROP TABLE IF EXISTS lyon.raw_station;")
- engine.execute("CREATE TABLE lyon.raw_station ({});".format(params_str))
- for station in velov:
- values = ["" if value is None else value for key, value in station["properties"].items()]
- point = shapely.geometry.Point(station["geometry"]["coordinates"])
- query = f"INSERT INTO lyon.raw_station VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, ST_SETSRID(%s::geometry, {srid}))"
- engine.execute(query, values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7], values[8], values[9], values[10], values[11], values[12], point.wkt)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement