相关API地址:地理/逆地理编码-API文档-开发指南-Web服务 API | 高德地图API

第一步:根据地址获取其坐标(高德地理编码)

第二步:根据坐标获取其详细地址信息(高德逆地理编码)

第三步:结果输出到CSV文件中(犹豫我是批量查询,所以每查询一万次就写入一次数据)

1-29w.csv文件格式如下:

输出结果文件如下:

完整代码如下:代码中key秘钥是本人自己的,如果你需要执行,请替换上你自己的秘钥

申请地址:高德开放平台 | 高德地图API

import requests
import pandas as pd
from urllib.parse import urlencodedef parse(): #读文件#total_data = pd.read_csv('data.csv',index_col=1,header=1,usecols=['yhbh','yddz'],delimiter=',')total_data = pd.read_csv('1-29w.csv',index_col = False)#for i in range(len(total_data)):#data = np.array(total_data) yhbh_list=total_data['yhbh']yddz_list=total_data['yddz']return yhbh_list,yddz_list#total_list_data = total_data['yddz']#return total_list_datadef search_location(address): #根据地址搜索坐标params = {'key': 'ceb4faac0f812edab24d1855b8b26b7c','address': address,'city': '广东'}base_url = 'https://restapi.amap.com/v3/geocode/geo?'+str(urlencode(params,encoding='UTF-8'))#response = requests.get(url=base_url, params=params)response = requests.get(url=base_url)json_data = response.json()#print(json_data)if json_data['status'] == '1' and len(json_data['geocodes']) > 0:#print(json_data['geocodes'][0]['location']) #高德坐标# 利用location搜索townshiptownship_str = search_address_detail(location=json_data['geocodes'][0]['location']) #调用函数#print('township_str:'+str(township_str))return township_str else:return '获取地址高德坐标失败'def search_address_detail(location): #输入高德坐标,搜索params = {#'location': location,'key': 'ceb4faac0f812edab24d1855b8b26b7c','radius':'50','batch':'false','roadlevel':'0','extensions':'all'}base_url = 'https://restapi.amap.com/v3/geocode/regeo?'+str(urlencode(params,encoding='UTF-8'))+str('&location='+str(location))response = requests.get(url=base_url)json_data = response.json()if json_data['status'] == '1':if json_data['regeocode']['addressComponent']['township']:return json_data['regeocode']['addressComponent']['township'] #返回街道信息else:return '请求根据高德坐标获取街道信息成功,但没有查询到街道信息'else:return '请求根据高德坐标获取街道信息失败'#return 'errorSearchAddress', json_dataif __name__ == '__main__':df = pd.DataFrame(columns=['yhbh', 'yddz', 'jiedao'])yhbh_list,yddz_list = parse() #读取文件#address_list=['深圳市南山区珠光村']index = 0yddz_len=len(yddz_list)try:for i in range(len(yddz_list)):   # 搜索location      township_str= search_location(yddz_list[i])#将查询的数据插入到dataframe中,以便后面输出到csv文件中df.loc[index] = [yhbh_list[i],yddz_list[i], township_str]print('文件有%s条数据,成功请求了%s条数据,街道信息为:%s'%(yddz_len,index,township_str))if i%10000==0 and i!=0: #每查询一万条数据,就输出到csv文件中,采取追加方式输出df.to_csv('jiedao1-29w.csv',mode='a', index=0,header=False)#第2个开始,就不需要表头了print('第%s个一万条数据,输出csv成功'%(i+1))df=df.drop(index=df.index)#清空dataframe数据,避免重复输出前面插入df的数据elif i%10000==0 and i==0:df.to_csv('jiedao1-29w.csv',mode='a', index=0) #输出第一个文件需要带有表头print('第%s个一万条数据,输出csv成功'%(i+1))df=df.drop(index=df.index)#清空dataframe数据,避免重复输出前面插入df的数据index = index + 1df.to_csv('jiedao1-29w.csv',mode='a', index=0,header=False)print('最后一个一万条数据,输出csv成功')except Exception as e:  #如果报错了,报错之前查询的数据,也输出到CSV文件中print('报错信息:'+str(e))df.to_csv('jiedao1-29w.csv',mode='a', index=0,header=False)print('报错了,存储CSV成功')

利用python,根据地址查询所属街道(高德地图)相关推荐

  1. 如何利用Python教你如何爬取高德地图!非常全面啊!

    一. 分析网页结构 以往几篇都是介绍的传统的静态界面的爬取,这次博主介绍一个爬取动态网页的超简单的一个小demo. 说到动态网页,你对它了解多少呢? 如果对动态网页不认识的童鞋,博主在此给出链接,可以 ...

  2. 利用python查询电脑配置_干货|利用Python将地址转换为经纬度坐标

    本文主要讲述利用Python将文本格式的地址转换为数字格式的经纬度坐标数据,主要步骤有: 注册高德地图API账号,申请Web服务的Key 了解并测试地理编码API服务 利用Python实现地址转坐标 ...

  3. 利用Python通过商品条形码查询商品信息

    提前说明,由于博文重在讲解,代码一体性有一定程度的破坏.如想要省事需要完整代码请至一下链接下载:完整代码下载 一 商品条形码 平日大家会购买许许多多的商品,无论是饮料.食品.药品.日用品等在商品的包装 ...

  4. 通过ip地址查询物理地址显示谷歌地图

    显示IP地址的地理位置地图 http://www.ip62.com/ipmap.php 一个调用谷歌地图api的简单应用.<html xmlns="http://www.w3.org/ ...

  5. JAVA利用数组求两点距离_利用java、js或mysql计算高德地图中两坐标之间的距离

    利用java.js或mysql计算高德地图中两坐标之间的距离 2019-09-19 编程之家收集整理的这篇文章主要介绍了利用java.js或mysql计算高德地图中两坐标之间的距离,编程之家小编觉得挺 ...

  6. Python网络爬虫之:调用高德地图的 API接口,完成定位的工作(返回经纬度)

    文章目录 高德地图 API 的使用方式: 代码部分 注意事项 高德地图 API 的使用方式: 去高德地图的开放平台注册一个账号,并且创建自己的项目,系统会分配给你一个 key 值,这个具体如何操作可以 ...

  7. 高德地图获取坐标距离_利用java、js或mysql计算高德地图中两坐标之间的距离

    前言 因为工作的原因,最近在做与地图相关的应用,使用了高德地图,研究了下高德地图计算两坐标距离的方法,官网上提供的开发包中有相关的方法,但是我的产品中比较特殊,无法直接使用提供的方法,所以就自己封装了 ...

  8. 利用python实现批量查询ip地址归属地址

    今天需要查询nginx访问的客户端ip是否和调度一样! 先是用shell把文件中的ip截取出来: python脚本如下:(哈哈,新手写的很草率) #!/usr/bin/env #-- coding: ...

  9. python实现whois查询_利用Python实现域名查询和whois查询

    一.域名查询 万网提供了域名查询接口,接口采用HTTP协议:接口URL:http://panda.www.net.cn/cgi-bin/check.cgi接口参数:area_domain,接口参数值为 ...

最新文章

  1. win2008 IIS7中启用JS的gzip压缩的方法
  2. python 下载网页文件_『如何用python把网页上的文本内容保存下来』python爬取网页内容教程...
  3. hadoop2.7之Mapper/reducer源码分析
  4. Nhibernate 3.0 cookbook学习笔记 创建事务自动包裹的访问层
  5. git stash 强制恢复_git操作与分支管理规范
  6. how CRM One Order search by contact name work in the past
  7. ios 返回指定导航控制器
  8. 【原】IOS合并lib(.a)库的终极可用方法(可用于解决duplicate symbol静态库冲突)
  9. Python 进阶 —— itertools
  10. C#用链式方法表达循环嵌套
  11. 黄色光纤跳线、橙色光纤跳线、蓝色光纤跳线区别
  12. 软件设计模式Java版
  13. R语言学习笔记5_参数的假设检验
  14. Vuforia Area及新功能讲解
  15. Android锁屏下弹窗的尝试,android开发实战我的云音乐
  16. maven Web项目中POM的配置信息
  17. WhatsApp拓客云控系统-SendWS群控管理后台功能介绍(三):WhatsApp多账号管理记录查询
  18. Mathematica实例——利用Mathematica演示量子力学中的波包演化
  19. java的数据类型:8大基本数据类型
  20. 给Java开发者的Flutter开发基础---Dart语言

热门文章

  1. 保持简单----纪念丹尼斯·里奇(Dennis Ritchie)
  2. 软件推荐-AntDownload
  3. 智慧农业大有可为,谁会是农业变革的领导者?
  4. 从gitee中复制文件并且解决issues
  5. Windows XP自动关机的实现
  6. 顺序表的定义及查询插入删除算法的实现
  7. Java 汉字拆分转为拼音 及根据经纬度获取所在位置
  8. 数据安全平台建设思路
  9. (附源码)SSM医院门诊分诊系统JAVA计算机毕业设计项目
  10. 诺禾--实验篇之荧光定量 PCR(上)