Requests.get(zipfile)获取“ BadZipFile:文件不是zip文件”

时间:2019-04-07 00:39:22

标签: python-3.x python-requests jupyter-notebook zipfile geopandas

我正在尝试加载geo文件集的zipfile中的shapefile。我已经尝试了几种方法,并且一直在学习,但是一无所获。以下代码应该适用于Python 3.5。

我尝试了Andrew Gaidus示例方法,并意识到它适用于先前的Python版本。 Oldja方法来自Python 3.x文档,应该可以使用。但是问题不断出现。

ListAdapter

我应该得到4个文件名。现在,在lynnmap = gpd ...处,出现错误:

OSError:没有这样的文件或目录:'tl_2010_25009_tract00.shp'。

示例未执行“开放”操作,但是我想知道geopandas是否正在告诉我应该这样做。

1 个答案:

答案 0 :(得分:1)

如果目标是仅从GitHub读取文件并从中创建GeoDataFrame(并且您不一定要在本地下载并解压缩文件,以便更快地重新读取),则可以直接从GitHub中读取文件使用geopandas.read_file函数的GitHub网址:

In [4]: df = geopandas.read_file("https://github.com/ItsMeLarry/Coursera_Capstone/raw/master/tl_2010_25009_tract00.zip") 

In [5]: df.head()                                                      
Out[5]: 
  STATEFP00 COUNTYFP00  ...    INTPTLON00                                           geometry
0        25        009  ...  -070.9744124  POLYGON ((-70.977153 42.452525, -70.9773139999...
1        25        009  ...  -070.9789107  POLYGON ((-70.986276 42.46005299999999, -70.98...
2        25        009  ...  -070.9853846  POLYGON ((-70.988809 42.460175, -70.9889149999...
3        25        009  ...  -070.9611517  POLYGON ((-70.95187 42.473647, -70.950974 42.4...
4        25        009  ...  -070.9925246  (POLYGON ((-71.000474 42.507547, -70.999544 42...

[5 rows x 13 columns]

geopandas.read_file接受一个URL,还可以自动处理不同shapefile文件的zip文件,并返回GeoDataFrame。