python - 通过循环包含 47 个 URL 的 Pandas 数据框来下载 CSV 数据
问题描述
我正在尝试为我的数据工程项目开发一个 Python 脚本,并且我想循环存储在数据框中的 47 个 URL,它会下载一个 CSV 文件并存储在我的本地机器中。以下是前 5 个 URL 的示例:
test_url = "https://data.cdc.gov/api/views/pj7m-y5uh/rows.csv?accessType=DOWNLOAD"
req = requests.get(test_url)
url_content = req.content
csv_file = open('cdc6.csv', 'wb')
csv_file.write(url_content)
csv_file.close()
我有一个文件,但不是打开一个 CSV 文件并在其中写入数据,我想直接下载所有文件并将其保存在本地机器中。
解决方案
您想要迭代然后将文件下载到文件夹中。.items()
通过使用pandas 数据帧中的方法并将其传递到循环中,迭代很容易。请参阅此处的文档。
然后,您要下载每个项目。Urllib 具有将.urlretrieve(url, filename)
托管文件下载到本地文件的功能,此处的 urllib 文档中对此进行了详细说明。
您的代码可能如下所示:
for index, url in url_df.items():
urllib.urlretrieve(url, "cdcData" + index + ".csv")
或者如果您想保留原始名称:
for index, url in url_df.items():
name = url.split("/")[-1]
urllib.urlretrieve(url, name)
推荐阅读
- javascript - 将 TypeScript 用于 React 减速器
- css - 如何放置 div 标签以将所有按钮放在一行上?
- c# - WPF:使用 x:Uid 和 resx 进行本地化
- azure - 如何在 Azure Ubuntu 虚拟机中从 Azure Registry 中提取 docker 映像
- php - Wordpress 可排序的自定义管理列
- python - 如何在 python-behave 中不打印捕获的登录成功
- python - 如何使用实时(总是)、(自动更新)请求检查网页抓取页面?Python
- symfony - 用于嵌套资源的 Api 平台别名过滤器
- sql - 如何在 SQL 中将公历日期转换为波斯日期(Jalali)?
- java - HttpClientBuilder 类崩溃没有任何异常