Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. import fiona
  2. import shapely.geometry
  3. velov = fiona.open(shp_file)
  4. print(velov.schema)
  5. params_str = ""
  6. for key, value in velov.schema["properties"].items():
  7. vtype = "character varying(80)" if value == "str:80" else value
  8. params_str += key + " " + vtype + ","
  9. srid = velov.crs["init"].split(":")[1]
  10. params_str += f"geom geometry(Point, {srid})"
  11. engine.execute("DROP TABLE IF EXISTS lyon.raw_station;")
  12. engine.execute("CREATE TABLE lyon.raw_station ({});".format(params_str))
  13. for station in velov:
  14. values = ["" if value is None else value for key, value in station["properties"].items()]
  15. point = shapely.geometry.Point(station["geometry"]["coordinates"])
  16. 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}))"
  17. 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