获取指定地区所有物流节点——高德api

在实际应用中,我们常常需要获取某些地区的一类节点,如在做地区物流节点分析时,需要获取该地区所有物流节点的地址、经纬度等信息。前面发了一个百度api的,这次换做高德api做相同的事件。需要说明的是,虽然查询的是一样的信息,但是不同平台查询到的数据结果不一样。

import pandas as pd
import requests
import json

# 定义获取信息的函数
def search_logistics_infoes(keywords):
    api_key = "********"  # 你获取的高德api
    endpoint = "https://restapi.amap.com/v3/place/text" # 需要连接的高德api接口

    params = {
        "keywords": keywords,
        "city": "广元市",
        "output": "json",
        "key": api_key
    }

    infoes = []

    page = 1
    while True:
        params["page"] = page

        response = requests.get(endpoint, params=params)
        response_json = json.loads(response.text)

        if response_json["status"] == "1":
            pois = response_json["pois"]
            if len(pois) > 0:
                for result in pois:
                    infoes.append(result)
                page += 1
            else:
                break
        else:
            break
    return infoes

# 解析函数
def infoes_to_locations(infoes):
    locations = []
    for info in infoes:
        location = {
            "name": info["name"],
            "address": info["address"],
            "province": info["pname"],
            "city": info["cityname"],
            "area": info["adname"],
            "lng": info["location"].split(",")[0],
            "lat": info["location"].split(",")[1]
        }
        locations.append(location)
    return locations


keywords = []
key1 = ['物流中心', '配送中心', '快递转运点', '仓库', '菜鸟驿站']
keywords.extend(key1)
keywords = list(set(keywords))

# 搜索地理名称中包含物流关键词的地理位置信息
infoes = []
for k in keywords:
    info = search_logistics_infoes(k)
    infoes.extend(info)

print(infoes[0])
len(infoes)
results = infoes_to_locations(infoes)
print(results[0])
len(results)
df = pd.DataFrame(results)
df = df.astype(str)
print(df)

df = df.drop_duplicates(subset=['name', 'address']).reset_index(drop=True)
print(len(df))

df = df.reindex(columns = ['name','address','province','city','area','lng','lat'])
df.columns = ['名称', '地址', '省份', '城市', '地区', '经度', '纬度']
df.index = df.index + 1
print(df)

df.to_excel('某区域物流节点信息.xlsx')

PS: 之前写的百度api的文,欢迎大家查阅~

获取指定地区所有物流节点——百度api-CSDN博客

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值