Совершенно новичок в Python и мне он нравится, и я думаю, что это может быть просто.
В настоящее время я вставляю точки в SQL Server 2008 с помощью скрипта Python с помощью pymssql.
var1 = "hi"
lat = "55.92"
lon = "-3.29"
cursor.execute("INSERT INTO table (field1, x, y) VALUES(%s, %s, %s)",
(var1 , lat, lon))
Это все работает нормально. Мне также нужно вставить эти координаты в поле GEOGRAPHY type (называемое geog ).
geog_type = "geography::STGeomFromText('POINT(%s %s)',4326))" % (lat, lon)
cursor.execute("INSERT INTO table (field1, x, y, geog) VALUES(%s, %s, %s, %s)",
(var1 , lat, lon, geog_type))
Это вызывает следующее исключение:
Метка geography::STGeomFro во входном общеизвестном тексте (WKT) недействительна. Допустимые метки: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION, CIRCULARSTRING, COMPOUNDCURVE, CURVEPOLYGON и FULLGLOBE (только тип данных geography).
Из SSMS я могу запустить оператор вставки в таблицу, чтобы вставить точку.
USE [nosde]
INSERT INTO tweets (geog)
VALUES(
geography::STGeomFromText(
'POINT(55.9271035250276 -3.29431266523898)',4326))
Дайте мне знать в комментариях, если вам нужна дополнительная информация.
Некоторые из моих разработок в pastebin.