当前位置: 首页 > news >正文

Python实例题:高德API+Python解决租房问题

目录

Python实例题

题目

python-amap-rental结合高德 API 和 Python 解决租房问题的脚本

代码解释

get_geocode 函数:

search_rentals 函数:

主程序:

运行思路

注意事项

Python实例题

题目

高德API+Python解决租房问题

python-amap-rental结合高德 API 和 Python 解决租房问题的脚本

import requests
import json# 替换为你自己的高德 API Key
AMAP_API_KEY = "your_amap_api_key"def get_geocode(address):"""通过高德地理编码 API 获取地址的经纬度:param address: 要查询的地址:return: 经纬度字符串,格式为 "经度,纬度""""url = f"https://restapi.amap.com/v3/geocode/geo?key={AMAP_API_KEY}&address={address}"try:response = requests.get(url)response.raise_for_status()data = response.json()if data["status"] == "1" and data["geocodes"]:location = data["geocodes"][0]["location"]return locationelse:print("未获取到有效的经纬度信息。")return Noneexcept requests.RequestException as e:print(f"请求出错: {e}")return Nonedef search_rentals(location, radius=3000):"""通过高德周边搜索 API 查找指定位置附近的租房信息:param location: 经纬度字符串,格式为 "经度,纬度":param radius: 搜索半径,单位为米,默认为 3000 米:return: 租房信息列表"""url = f"https://restapi.amap.com/v3/place/around?key={AMAP_API_KEY}&location={location}&keywords=租房&radius={radius}&types=120302&output=json"try:response = requests.get(url)response.raise_for_status()data = response.json()if data["status"] == "1" and data["pois"]:rentals = []for poi in data["pois"]:rental = {"name": poi["name"],"address": poi["address"],"distance": poi["distance"]}rentals.append(rental)return rentalselse:print("未找到附近的租房信息。")return []except requests.RequestException as e:print(f"请求出错: {e}")return []if __name__ == "__main__":work_address = input("请输入你的工作地点: ")location = get_geocode(work_address)if location:rentals = search_rentals(location)if rentals:print("以下是附近的租房信息:")for rental in rentals:print(f"名称: {rental['name']}, 地址: {rental['address']}, 距离: {rental['distance']} 米")

代码解释

  • get_geocode 函数

    • 构建地理编码 API 的请求 URL,将用户输入的地址作为参数。
    • 发送 HTTP 请求,若请求成功且返回有效数据,提取经纬度信息并返回。
    • 处理请求异常和数据无效的情况。
  • search_rentals 函数

    • 构建周边搜索 API 的请求 URL,将经纬度和搜索半径作为参数。
    • 发送 HTTP 请求,若请求成功且返回有效数据,提取租房的名称、地址和距离信息,存储在列表中返回。
    • 处理请求异常和未找到租房信息的情况。
  • 主程序

    • 提示用户输入工作地点。
    • 调用 get_geocode 函数获取工作地点的经纬度。
    • 若获取到经纬度,调用 search_rentals 函数查找附近的租房信息并打印。

运行思路

  • 获取高德 API Key:前往高德开放平台(高德开放平台 | 高德地图API )注册账号,创建应用,获取 API Key。
  • 安装依赖库:确保已经安装了 requests 库,若未安装,可使用以下命令进行安装:
pip install requests
  • 修改代码:将代码中的 AMAP_API_KEY 替换为你自己的 API Key。
  • 运行脚本:将上述代码保存为 amap_rental_search.py 文件,在终端中运行:
python amap_rental_search.py
  • 输入信息:按照提示输入工作地点。
  • 查看结果:程序会打印出附近的租房信息。

注意事项

  • API 限制:高德 API 有调用频率限制,若需要大量查询,可考虑申请更高的配额。
  • 数据准确性:周边搜索 API 返回的租房信息可能不够全面或准确,可结合其他租房平台进一步查找。
  • 费用问题:若使用 API 的频率较高,可能会产生一定的费用,需关注高德开放平台的收费标准。

相关文章:

  • 室内烟雾明火检测数据集VOC+YOLO格式2469张2类别
  • 驱动开发系列57 - Linux Graphics QXL显卡驱动代码分析(四)显示区域绘制
  • 【专家库】Kuntal Chowdhury
  • 【挖洞利器】GobyAwvs解放双手
  • 基站综合测试仪核心功能详解:从射频参数到5G协议测试实战指南
  • RabbitMQ-api开发
  • 天文探秘学习小结
  • Java 函数式编程
  • 基于GA遗传优化的不同规模城市TSP问题求解算法matlab仿真
  • 删除排序链表中的重复元素:三种解法详解
  • 【Python-Day 10】Python 循环控制流:while 循环详解与 for 循环对比
  • ETL交通行业案例丨某大型铁路运输集团ETL数据集成实践
  • 购物数据分析
  • 双系统电脑中如何把ubuntu装进外接移动固态硬盘
  • 云境天合水陆安全漏电监测仪—迅速确定是否存在漏电现象
  • 算法每日一题 | 入门-顺序结构-三角形面积
  • 第十一届蓝桥杯 2020 C/C++组 蛇形填数
  • 第15章 Python数据类型详解之分解理解:基础数据类型常见易错点和性能优化篇
  • 【WPS】怎么解决“word的复制表格”粘贴到“excel的单元格”变多行单元格的问题
  • 浅谈 - GPTQ为啥按列量化
  • 人民日报评论员观察:稳企业,全力以赴纾困解难
  • 王楚钦球拍检测环节受损,国际乒联发声明
  • 墨海军训练舰在纽约撞桥,墨总统:对遇难者表示悲痛,将跟进调查
  • 体育文化赋能国际交流,上海黄浦举办国际友人城市定向赛
  • 国际博物馆日|航海博物馆:穿梭于海洋神话与明代造船工艺间
  • “马上涨价”再到“吞下关税”,美政策让沃尔玛“输两次”