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

如何修复Python中'str' object is not callable错误(股票API场景)

解决股票API请求的TypeError及相关问题

让我们一步步排查并解决你的问题:

1. 核心错误原因分析

你遇到的TypeError: 'str' object is not callable最可能的两个诱因:

  • 变量名冲突:如果你之前在运行环境中把input这个内置函数名赋值成了字符串(比如input = 'AAPL'),后续调用input('Which stock you look for? ')就会报错——因为此时input是字符串而非函数。
  • API请求配置错误:你使用的是Financial Modeling Prep (FMP) 的API,但请求头里用的是RapidAPI的Host和Key,这完全不匹配,会导致API返回非JSON格式的错误内容(比如HTML字符串),后续处理JSON时可能引发连锁错误。

2. 代码修复方案

下面是修正后的完整代码,我标注了关键改动点:

import requests

# FMP API的基础地址
main_api = 'https://financialmodelingprep.com/api/v3/company/profile'
# 替换成你自己的FMP API Key(在FMP官网免费注册即可获取)
FMP_API_KEY = 'your_fmp_api_key_here'

# 优化变量名:用stock_symbol替代my_request,语义更清晰
stock_symbol = input('Which stock you look for? ')
# 用f-string拼接URL,可读性更强
url = f"{main_api}/{stock_symbol}"

try:
    # 正确的FMP API认证方式:用params传递apikey,而非错误的RapidAPI请求头
    response = requests.get(url, params={'apikey': FMP_API_KEY})
    # 检查请求是否成功(比如404、500错误会直接抛出异常)
    response.raise_for_status()
    
    # 解析JSON响应
    response_json = response.json()
    
    # FMP的profile接口返回的profile是字典对象,不是数组,不需要[0]索引
    if 'profile' in response_json and 'price' in response_json['profile']:
        price = response_json['profile']['price']
        print(f"Today value: ${price:.2f}")
    else:
        print("无法获取该股票的价格信息,请检查股票代码是否正确。")
        
except requests.exceptions.RequestException as e:
    print(f"请求出错:{e}")
except ValueError:
    print("API返回的内容不是有效的JSON,请检查API配置。")
except TypeError as e:
    print(f"数据处理出错:{e}")

关键改动说明:

  • 修正API认证逻辑:FMP的API需要通过apikey参数传递你的密钥,不需要RapidAPI的请求头,这是你之前请求失败的核心原因。
  • 修复JSON取值错误:FMP的/company/profile/{symbol}接口返回的profile是一个字典对象,而非数组,所以去掉了错误的[0]索引。
  • 变量名优化:将request改为response,避免和requests模块中的request类混淆;将my_request改为stock_symbol,让代码语义更清晰。
  • 添加异常处理:覆盖了请求失败、JSON解析错误、数据结构异常等场景,能帮你快速定位问题。

3. 额外注意事项

  • 确保你输入的股票代码是正确的(比如苹果是AAPL,谷歌是GOOGL)。
  • 如果使用FMP免费版API,注意请求频率限制,避免触发限流机制。
  • 如果你之前确实误覆盖了input函数,可以在Python交互环境中执行del input来恢复内置函数。

内容的提问来源于stack exchange,提问作者Emilio Vento

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:35:00