如何从人道主义数据交换(hdx api python)下载datasat

2024-09-28 22:24:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我不太明白如何从数据集中下载数据。我只下载了一个文件,其中有几个。我怎样才能解决这个问题? 我正在使用HDXAPI库。文档中有一个小示例。列表返回给我,我使用下载方法。但只有列表中的第一个文件被下载,而不是全部

我的代码

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

enter image description here

数据集 enter image description here


Tags: csv数据infromurl列表datadownload
1条回答
网友
1楼 · 发布于 2024-09-28 22:24:40

您可以按如下方式获得下载链接:

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']

相关问题 更多 >