Python GEOS_错误:ParseException:未知WKB类型337

Python GEOS_错误:ParseException:未知WKB类型337,python,django,gis,postgis,geodjango,Python,Django,Gis,Postgis,Geodjango,我正在用geodjango和postgis编写一个基于地理位置的应用程序。我编写了模型,并从管理界面手工填写了前几点。一切都很好,我甚至可以按最近的点搜索。因此,模型和数据库都运行良好。现在,我正试图从脚本批量填充数据库。根据我在这里找到的答案,我首先填写经度和纬度列,然后执行 engine.execute("UPDATE listings_listing SET location = ST_SetSRID(ST_MakePoint(longitude,latitude), 4326)") 来

我正在用geodjango和postgis编写一个基于地理位置的应用程序。我编写了模型,并从管理界面手工填写了前几点。一切都很好,我甚至可以按最近的点搜索。因此,模型和数据库都运行良好。现在,我正试图从脚本批量填充数据库。根据我在这里找到的答案,我首先填写经度和纬度列,然后执行

engine.execute("UPDATE listings_listing SET location = ST_SetSRID(ST_MakePoint(longitude,latitude), 4326)")
来自python脚本。查询执行时没有异常,数据库中似乎充满了正确的值。这里有几个例子

 longitude, latitude, location
-55.7385809,-34.7413717,"0101000020E6100000A279A5D189DE4BC008D79244E55E41C0"
-56.1645314,-34.9011127,"0101000020E610000022156B5D0F154CC0504134A9577341C0"
-56.4670779,-30.4264621,"0101000020E610000099976835C93B4CC0C57BC49E2C6D3EC0"
-55.760207,-34.774156,"0101000020E61000005B9885764EE14BC04700378B176341C0"
-56.2553815,-34.7901883,"0101000020E610000070404B57B0204CC04617E5E3246541C0"
-55.760336,-34.773944,"0101000020E610000059FCA6B052E14BC0BC77D498106341C0"
-57.0544726,-30.7552116,"0101000020E610000098C349F5F8864CC0518F238C55C13EC0"
-56.4739006,-30.4097107,"0101000020E610000003475DC6A83C4CC03F52E9CCE2683EC0"
现在,当我尝试通过最近的点进行第一次搜索时,我得到

GEOS_ERROR: ParseException: Unknown WKB type 337
从django的日志中

Error encountered checking Geometry returned from GEOS C function "GEOSWKBReader_read_r".
我用谷歌搜索错误,但什么也没有。我检查了经度和纬度中可能的空值,但它们都很好。我怀疑我错过了一步。
有人能给我指出正确的方向吗?

我找到了解决办法。问题是熊猫的大量填充。如果使用参数
的pandas的方法
.to\u sql()
,那么pandas会删除现有表并完全替换它,从而破坏每个架构。因此,在填充“几何体类型”列之前,必须以这种方式重建“几何体”列

ALTER TABLE listings_listing ADD COLUMN location geometry(Point, 4326); 
然后

UPDATE listings_listing SET location = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326)

现在一切都很好

我找到了解决办法。问题是熊猫的大量填充。如果使用参数
的pandas的方法
.to\u sql()
,那么pandas会删除现有表并完全替换它,从而破坏每个架构。因此,在填充“几何体类型”列之前,必须以这种方式重建“几何体”列

ALTER TABLE listings_listing ADD COLUMN location geometry(Point, 4326); 
然后

UPDATE listings_listing SET location = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326)
现在一切都很好