Kiran_7 2022-11-17 13:51 采纳率: 0%
浏览 5
已结题

python语言借用高德接口进行地理编码,文件无法运行

使用python写了一个程序先爬取高风险地区地址,再调用高德接口进行地理编码获取对应的坐标。目前存在两个问题,第一是在进行地理编码时会发生中断。(keyerror)第二是这程序好像只能在我电脑上运行。


import json

import requests
# 爬取高风险区域地址
url = ["http://m.zz.bendibao.com/news/gelizhengce/fxmd_data.php?level=%E9%AB%98%E9%A3%8E%E9%99%A9"    # 高风险
       #    "http://m.zz.bendibao.com/news/gelizhengce/fxmd_data.php?level=%E4%B8%AD%E9%A3%8E%E9%99%A9"     # 中风险
       ]

degree = ["高风险"]  # , "中风险"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
}

for i in range(1):
    html = requests.get(url=url[i], headers=headers).text
    html = json.loads(html)
    # print(html)
    # print(html.keys())
    data = html['data']

    with open("./Map/python/" + degree[i] + ".csv", "w+", encoding="utf-8") as f:
        for item in data:
            province = item['province']
            if province == '河南':
                city_name = item['cityname']
                # if city_name == '开封':
                for qu in item['qu']:
                    f.write(province + ',' + city_name +
                            ',' + qu['qu'] + '\n')

# 将地址转换为坐标
r = open("./Map/python/高风险经纬度.csv", 'w+')
with open("./Map/python/高风险.csv", 'r', encoding='utf-8')as tt:
    address = tt.readlines()
for line in address:
    line = line.replace(',', '')

for line in address:
    par = {'address': line, 'key': '04640e136bccb65c7c9a5fc3edfc4a8b'}
    url = 'https://restapi.amap.com/v3/geocode/geo'
    res = requests.get(url, par)
    json_data = json.loads(res.text)
    geo = json_data['geocodes'][0]['location']
    longitude = geo.split(',')[0]
    latitude = geo.split(',')[1]
    print(longitude+','+latitude, file=r)


先说第一个问题,中断。
报错如下:

img


地址中的数据:

img


转换结果:

img


可以看到在737这里断掉了,我本来以为是地址格式问题没法识别但是目前看来并不是这样。

再说第二个问题,运行不了。
报错内容:

img


这是朋友发我的报错,但是我完全没有头绪。

我最近刚刚开始学习python,但是大创项目需要用到这些,硬着头皮做出来的东西,出这些错我自己真的不知道怎么办,特别是第二个问题,代码并不复杂但是我也不知道为啥别人跑不了。

  • 写回答

1条回答 默认 最新

  • 二九筒 2022-11-17 16:09
    关注

    第一个问题数据源的问题不知道你获取到的response真实数据是怎么样的所以不好猜测,但是第二个不是问题,是自己结束了代码运行,所以会显示成这样

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月26日
  • 创建了问题 11月17日

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建