问题描述
我不太了解如何从数据集中下载数据。我只下载一个文件,其中有几个。我怎么解决这个问题? 我正在使用hdx api库。文档中有一个小例子。列表返回给我,我使用下载方法。但是,只会下载列表中的第一个文件,而不是全部下载。
我的代码
from hdx.hdx_configuration import Configuration
from hdx.data.dataset import Dataset
Configuration.create(hdx_site='prod',user_agent='A_Quick_Example',hdx_read_only=True)
dataset = Dataset.read_from_hdx('novel-coronavirus-2019-ncov-cases')
resources = dataset.get_resources()
print(resources)
url,path = resources[0].download()
print('Resource URL %s downloaded to %s' % (url,path))
我尝试使用不同的方法,但事实证明只有这种方法有效,循环中似乎存在某种错误,但我不知道如何解决。
结果
Resource URL https://data.humdata.org/hxlproxy/api/data-preview.csv?url=https%3A%2F%2Fraw.githubusercontent.com%2FCSSEGISandData%2FCOVID-19%2Fmaster%2Fcsse_covid_19_data%2Fcsse_covid_19_time_series%2Ftime_series_covid19_confirmed_global.csv&filename=time_series_covid19_confirmed_global.csv downloaded to C:\Users\tred1\AppData\Local\Temp\time_series_covid19_confirmed_global.csv.CSV
忘了补充一点,我得到了一个包含下载URL值的字符串列表。问题可能出在循环中
当我使用for循环时,我得到了:
for res in resources:
print(res)
res[0].download()
Traceback (most recent call last):
File "C:/Users/tred1/PycharmProjects/pythonProject2/HDXapi.py",line 31,in <module>
main()
File "C:/Users/tred1/PycharmProjects/pythonProject2/HDXapi.py",line 21,in main
res[0].download()
File "C:\Users\tred1\AppData\Local\Programs\Python\Python38\lib\collections\__init__.py",line 1010,in __getitem__
raise KeyError(key)
KeyError: 0
解决方法
您可以按以下方式获得下载链接:
dataset = Dataset.read_from_hdx('acled-conflict-data-for-africa-1997-lastyear')
lita_resources = dataset.get_resources()
dictio=lista_resources[1]
url=dictio['download_url']