python 利用高德得到地址对应的经伟度,由于地址原因在指定时间范围内得不到经伟度而终止,pandas读写

复制代码
import requests,sys
import json,math,xlrd,xlwt,time
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from math import sin, asin, cos, radians, fabs, sqrt
import pandas as pd
from geopy.distance import geodesic
from openpyxl import load_workbook
import re
 
def search_chinese_address(text):
    # 正则表达式模式,匹配常见的中文地址
    pattern = r'[\u4e00-\u9fa5]{2,}.*[\u4e00-\u9fa5]{2,}'
    matches = re.findall(pattern, text)
    return matches
def search_chinese_address(text):
    # 正则表达式模式,匹配常见的中文地址
    pattern = r'[\u4e00-\u9fa5]+区站}'
    matches = re.findall(pattern, text)
    return matches
 
# 使用函数
##addresses = find_addresses(text)
##for address in addresses:
##    print(address)
    
def dzjws(dizhii):
    url = 'https://restapi.amap.com/v3/geocode/geo'   
    # 将两个参数放入字典
    params = { 'key': '1a586e7b6da8bee4af4944bc6c3abbe9',
           'address': dizhii }
    a=0
    st1=time.time()
    tt=10
    while a==0:
        st2=time.time()
        if st2-st1>12:
            dzhi=""
            break
        try:
            res = requests.get(url, params,timeout=5)
            jd = json.loads(res.text)
            #dzhi=jd['geocodes'][0]['location']
            dzhi=jd['geocodes'][0]['location']
            a=1
        except:
            a=0
    return dzhi
##wb=load_workbook('jieguo1.xlsx')
index=-1
df=pd.read_excel('jieguo1.xlsx')
##df["jwd"]=""
##df["xx"]=""
##
##for xx in zip(df["dizhi1"]):
##    
##    index=index+1
##    dizhi=str(xx[0])
##    didi=search_chinese_address(dizhi)
##    for address in didi:
##        print(dizhi,address)
##
##sys.exit(0)

    
for xx in zip(df["dizhi"]):
    
    index=index+1
    dizhi=str(xx[0])
    print(dizhi)
    st1=time.time()
    tt=10
    xx=0
    mm=""
    while 1:
        st2=time.time()
        if st2-st1>tt:
            xx=1
            break
        mm=dzjws(dizhi)
        if mm!="":
            break
    if xx==1:
        mm=""
    print(dizhi,mm)
    df.loc[index,"jwd"]=mm
    #time.sleep(2)
    #break
##df["jwd"]=df["dizhi"].apply(dzjws)
df.to_excel("jieguo5x.xlsx",index=False)
复制代码

python 利用高德得到地址对应的经伟度,由于地址原因在指定时间范围内得不到经伟度而终止,pandas读写

posted @   myrj  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2023-08-16 专利统计数据库PATSTAT
2022-08-16 python schedule定时运行时间中时 分都必须用两位数表示
2021-08-16 单片机:原理图
点击右上角即可分享
微信分享提示