发布时间:2026-07-21阅读(1)

在这里插入图片描述
@Author : Runsen
高德地图【东莞理工学院】
https://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院
- 可以发现,访问该链接返回的数据是以json格式存储的,如果直接存储返回的网页,那么默认保存格式应该为json
- 目标是将该json文件中区域边缘点的经纬度坐标提取出来
# 引如requess库import requests# 下载数据data = requests.get(url=http://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院)data.text# 导入json包import json# 利用json包把上述字符串解析成Python字典js = json.loads(data.text)
在这里插入图片描述
# 再看嵌套的小字典data的keysjs[data].keys()dict_keys([codepoint, code, suggestion, timestamp, lqii, is_general_search, result, keywords, message, total, busline_list, bus_list, general_flag, bounds, version, busline_count, magicbox_data, interior_count, poi_list])
# 查看输出,我们知道区域边缘坐标点应该是保存在key = poi_list对应的value中的,把它提取出来js[data][poi_list]g
以下是全代码
# 引如requess库import requests# 下载数据data = requests.get(url=http://ditu.amap.com/service/poiInfo?query_type=TQUERY&keywords=东莞理工学院)# 导入json包import json# 利用json包把上述字符串解析成Python字典js = json.loads(data.text)# 将结果保存下来,进行下一步解析points1 = js[data][poi_list][0][bound]points2 = js[data][poi_list][1][bound]# 用‘_’来分割这些点,会生成一个列表points= points1.split(_)import pandas as pddf = pd.DataFrame(points,columns=[lat_lng])# 把经度解析出来df[longitude] = df[lat_lng].apply(lambda s:s.split(,)[0])# 把纬度解析出来df[latitude] = df[lat_lng].apply(lambda s:s.split(,)[1])# 删掉第一个字段df = df.drop(lat_lng,axis = 1)# 把数据保存到本地df.to_csv(./data/scau.csv,index = False)现在试下抓取的数据 用的
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图