如何用Python直接读取在线压缩包内的澳大利亚Google Mobility CSV文件
在线提取澳大利亚Google Mobility CSV文件的Python实现
不用下载整个压缩包到本地,全程在内存中完成请求、解压、筛选和读取操作,每次运行自动获取最新官方数据。
依赖安装
- 先安装所需第三方库:
pip install requests pandas
实现代码
import requests import zipfile import io import pandas as pd # 官方压缩包地址 ZIP_URL = "https://www.gstatic.com/covid19/mobility/Region_Mobility_Report_CSVs.zip" # 发送请求获取压缩包字节流,设置超时避免长时间等待 resp = requests.get(ZIP_URL, timeout=60) # 将字节流包装为可随机读取的类文件对象 zip_byte = io.BytesIO(resp.content) # 打开内存中的压缩包 with zipfile.ZipFile(zip_byte) as zip_f: # 遍历压缩包内所有文件名,筛选澳大利亚对应的文件(文件名包含_AU_,AU是澳大利亚ISO国家码) au_file_name = [f for f in zip_f.namelist() if "_AU_" in f][0] # 直接读取目标CSV文件到DataFrame,不写入本地 with zip_f.open(au_file_name) as au_csv: df = pd.read_csv(au_csv) # 后续可直接操作df进行数据分析 print(df.head())
注意事项
- 筛选逻辑基于Google官方的文件命名规则:所有国家的CSV文件名格式为
{年份}_{国家码}_Region_Mobility_Report.csv,澳大利亚国家码为AU,因此通过_AU_匹配即可定位目标文件。 - 若后续官方修改命名规则,可打印
zip_f.namelist()查看所有文件名,调整筛选条件即可。
内容的提问来源于stack exchange,提问作者Alice Sult
相关产品推荐
相关产品推荐

