You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python程序出现TypeError:获取上海交通大学place_id失败求助

解决Python调用Web服务提取place_id的TypeError问题

首先,咱们先梳理下这类场景里最容易触发TypeError的几个常见坑,再给你一个可运行的示例代码,对照着你自己的代码排查应该就能找到问题:

常见错误原因

  • 直接操作响应对象而非JSON数据:比如你用requests.get()拿到响应后,没调用.json()方法就直接去取键,这会触发TypeError,因为响应对象不是字典/列表类型。
  • 访问不存在的嵌套键/索引:比如JSON返回的结构和你预期的不一样,你直接data['results'][0]['place_id'],但如果results是空列表或者根本不存在这个键,就会报错。
  • 请求参数类型错误:比如Web服务要求参数是字符串,但你传了其他类型(比如整数),或者拼接URL时用了错误的类型拼接。

可运行的示例代码

假设你用的是常见的地理编码Web服务(比如Google Places API),下面是完整的可运行代码,你可以对照自己的代码找差异:

import requests

def get_place_id(location):
    # 替换成你自己的API密钥
    api_key = "YOUR_API_KEY"
    base_url = "https://maps.googleapis.com/maps/api/geocode/json"
    
    # 构造请求参数,确保所有参数都是字符串类型
    params = {
        'address': location,
        'key': api_key
    }
    
    try:
        # 发送GET请求
        response = requests.get(base_url, params=params)
        # 检查请求是否成功(比如404、500这类错误)
        response.raise_for_status()
        
        # 关键步骤:把响应转换成JSON字典,别忘调用.json()
        data = response.json()
        
        # 先校验返回结构是否符合预期
        if 'results' in data and len(data['results']) > 0:
            return data['results'][0]['place_id']
        else:
            print("未找到匹配的地点信息")
            return None
    except TypeError as e:
        print(f"触发TypeError:{e}")
        print("大概率是没正确解析JSON,或者访问了不存在的键/索引")
    except requests.exceptions.RequestException as e:
        print(f"请求出错:{e}")

# 测试获取上海交通大学的place_id
location_input = input("请输入地点:") or "Shanghai Jiao Tong University"
place_id = get_place_id(location_input)
if place_id:
    print(f"首个place_id是:{place_id}")

快速排查步骤

  1. 先检查你的代码里有没有调用.json()方法:如果直接用response['results']操作响应对象,肯定会触发TypeError,因为Response对象不支持下标访问。
  2. 打印实际返回的JSON数据:可以在解析后加print(data),看看真实的键名和层级结构,比如有些服务可能返回data['data']['results']而非直接data['results']。
  3. 检查参数传递:比如拼接URL时有没有把非字符串类型的变量直接拼进去,这种操作可能导致请求返回异常数据,间接引发TypeError。

如果把你的代码贴出来,我能更精准地帮你定位问题,但根据常见情况,上面的几点应该能覆盖绝大多数TypeError的原因了。

内容的提问来源于stack exchange,提问作者Amanda M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:56:23