深圳市政府公开数据集获取:API接口自动化下载指南

随着政府数据开放政策的推进,越来越多的公共数据资源被公开,为研究者、开发者以及公众提供了宝贵的信息资源。深圳市政府公开数据平台便是其中之一,提供了丰富的数据集以供下载和使用。本篇文章将详细介绍如何通过注册深圳市政府公开数据平台账号,并使用API接口批量下载数据集。我们将按照步骤完成从注册账号到通过API接口获取数据的全过程,并提供一份完整的Python脚本,实现自动化下载。

首先需要注册平台的账号,最好实名认证,这样可以下载的数据比较多;

找到需要下载的数据,选择下面的调用数据接口,在跳转的页面中找到调用说明部分;

接口文档步骤部分:一定要按1.提交应用名称,2.订阅接口,3.测试接口的步骤来,也可以下载接口文档,里面有详细的操作说明;然后进行接口测试发送请求,看是否有返回内容;

通过接口获取时会有两个参数:ROWS和PAGE,ROWS=N代表把N条数据作为一页对数据集进行划分,PAGE=M代表选取第M页的数据;

下面是通过接口获取数据的代码,将代码中的"RequestURL","DataSize","appKey"分别改成请求地址,数据条数和appKey然后运行即可;

# 完整代码(环境Python3.11)

import requests
import pandas as pd
import time

# 参数设置
RequestURL = 'https://opendata.sz.gov.cn/api/29200_00403627/1/service.xhtml'  # 输入项目地址
Rows = 5000  # 每页返回的记录数
DataSize = 10000  # 输入次数
PageSize = (DataSize + Rows - 1) // Rows  # 计算总页数
appKey = 'f05b4972f9e4483ba33'  # API密钥
header = headers = {'User-Agent': 'Custom'}  # 设置请求头
FileName = 'dataset.csv'  # 输出文件名

# 测试API请求,检查返回状态码是否为200
print('Page Size:', PageSize)
strhtml = requests.get(RequestURL + '?appKey=' + appKey + '&page=1&rows=1', headers=header)
if strhtml.status_code != 200:
    print('API请求失败,状态码:', strhtml.status_code)
    exit()

# 读取数据
pd_data = []
page_num = 1
while page_num <= PageSize:
    # 计算当前页码对应的URL参数
    page_params = '?appKey=' + appKey + '&page=' + str(page_num) + '&rows=' + str(Rows)
    try:
        # 发送请求并获取响应内容
        strhtml = requests.get(RequestURL + page_params, headers=header)
        data = strhtml.json()['data']
        if page_num == PageSize:  # 最后一页数据可能不足Rows条,需特殊处理
            data = data[:DataSize % Rows]
        for row in data:
            # 将每条数据转换为DataFrame,并添加到pd_data列表中
            pd_data.append(pd.DataFrame.from_dict(row, orient='index').T)
        print('获取第{}页数据,共{}页'.format(page_num, PageSize))
        page_num += 1
    except Exception as e:
        print('请求第{}页数据失败,原因:{}'.format(page_num, e))
        continue

    # 将所有DataFrame合并为一个DataFrame并保存为CSV文件
pd.concat(pd_data, ignore_index=True).to_csv(FileName)
print('数据已成功保存为', FileName)

结果数据dataset.csv;

参考来源:深圳市政府公开数据集获取(附完整代码) - 知乎 (zhihu.com)

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图说交通

买猫粮,楼下的流浪猫在等我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值