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

如何解决Python代码报错:TypeError: 'NoneType' object is not subscriptable

问题定位
  • 该报错的核心原因是你尝试用[]下标语法访问了一个值为None的对象。你提供的代码中只有df['Close']使用了下标操作,由此可以确定变量df没有被正确赋值,实际值为None。
  • 可排除company_name导致该报错的可能:如果company_name为None,字符串拼接操作会报「无法将NoneType和字符串拼接」的错误,和当前报错信息不符。
修复步骤
  • 第一步:排查df的赋值逻辑
    检查你读取数据源(本地csv/Excel文件、数据库查询结果、接口返回数据等)的代码是否执行成功。比如使用pd.read_csv()读取文件的场景,需要先确认文件路径正确、文件未损坏,赋值后可临时加一行st.write(df)输出df的内容,确认它是正常的pandas DataFrame对象。
  • 第二步:增加空值校验逻辑,避免程序直接崩溃
    可以在绘图前增加判断逻辑,示例代码如下:
# 导入库的代码保留
import streamlit as st
import pandas as pd
from PIL import Image

# 原有df赋值的逻辑放在这里
# xxx

# 新增校验逻辑
if df is not None and 'Close' in df.columns:
    st.header(company_name+" Close Price\n")
    st.line_chart(df['Close'])
else:
    st.error("数据加载异常,请检查数据源是否包含Close字段")
  • 第三步:如果df来自Streamlit的文件上传组件,需要增加用户上传完成的判断,不要在用户还未上传文件时就执行df['Close']相关操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:45:01