@Astar 2023-11-14 21:14 采纳率: 55.6%
浏览 7

python百度地图api获取数据

用百度地图api获取数据,将数据导入excel。请好心人帮忙看看这段代码的问题怎么解决,总是提示KeyError: 'count'

# %%
import requests
import time
import pandas as pd
import json

# %%
url='https://api.map.baidu.com/place/v2/search?query=美食&tag=中餐厅&location=23.09,113.35&radius=5000&output=json&ak=EHdMzRzGmOWGQ5F7TaSCufO7K6nS41ym&page_size=20&page_num=0'
#1.构建网址的操作,参看百度地图API(https://lbs.baidu.com/faq/api?title=webapi/guide/webservice-placeapi/circle)

# %%
page=0
poi_all=pd.DataFrame()

# %%
while page<20:#2.构建翻页的模式
    url_next=url.replace('page_num=0','page_num='+str(page))
    poi=requests.get(url_next)
    poi_text=eval(poi.text)#3.了解如何将request收到的数据进行转换
    if poi_text['count']=='0':
        break
    else:
        poi_d=pd.DataFrame(poi_text['pois'])#4.不同页面的数据合并到一个表格里
        poi_all=pd.concat([poi_all,poi_d])
    page+=0
    time.sleep(3)
    print(page)

# %%
poi_all.to_excel('E:\百度周边.xlsx','Sheet1',index=False)

  • 写回答

2条回答 默认 最新

  • 无序繁星 2023-11-15 08:53
    关注

    要学会排查问题,keyError说明字典里没有这个键,你就可以调试看下poi_text的内容是什么. 我看结果集在poi_text['result']中,那就可以用len(poi_text['result']) == 0来判断结果集为空

    评论

报告相同问题?

问题事件

  • 创建了问题 11月14日

悬赏问题

  • ¥15 python提取.csv文件中的链接会经常出现爬取失败
  • ¥15 数据结构中的数组地址问题
  • ¥15 maya的mel里,怎样先选择模型A,然后利用mel脚本自动选择有相同名字的模型B呢。
  • ¥15 Python题,根本不会啊
  • ¥15 会会信号与系统和python的来
  • ¥15 关于#python#的问题
  • ¥20 oracle RAC 怎么配置啊,配置
  • ¥15 excel 日常使用中出现问题
  • ¥20 pdusession建立失败
  • ¥15 为什么mqtt接收不到数据?