首页 > 解决方案 > 如何在 gdal python 中使用 /viscurl/ 将 Open Data url 加载到 posgres 中?

问题描述

我正在尝试使用 GDAL Python 绑定将开放数据数据集加载到 postgres 数据库中。我已经成功地编写了代码来从 github 和 ftp 服务器等地方加载远程文件,但是当尝试从 Socrata 加载数据时,gdal 总是给我错误。

我已经能够使用以下命令获取数据集的信息:

ogrinfo -ro -al -so 'https://data.cityofnewyork.us/api/views/mwzb-yiwb/rows.csv'  --config CPL_CURL_VERBOSE YES --config CPL_VSIL_CURL_USE_HEAD NO --config OGR_SKIP GeoJSONSeq

我设置CPL_VSIL_CURL_USE_HEAD NO是因为当 gdal 尝试仅请求链接的 HEAD 时请求失败。

我现在正在尝试使用 python 绑定将数据集加载到 postgres 中。

url = "/vsicurl/" + "https://data.cityofnewyork.us/api/views/mwzb-yiwb/rows.csv"
gdal.SetConfigOption('CPL_VSIL_CURL_USE_HEAD', 'NO')
srcDS = gdal.OpenEx(url)

...但我不断收到此错误:

ERROR 4: /vsicurl/https://data.cityofnewyork.us/api/views/mwzb-yiwb/rows.csv' not recognized as a supported file format.

标签: pythonc++postgresqlgdalogr

解决方案


推荐阅读