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

电影推荐系统开发遇TypeError错误求助:内置函数/方法不可迭代

解决Streamlit中TypeError: 'builtin_function_or_method' object is not iterable错误

错误原因

这个错误说明你赋值给movie_list的对象是一个内置方法/函数,而非可迭代的数组或列表。常见诱因包括:

  • movies不是有效的pandas DataFrame,导致movies['title']无法返回预期的Series对象
  • title列不存在于movies数据结构中
  • 某些特殊数据结构下,.values是需要调用的方法而非属性(但pandas Series的.values是属性)

解决方案

1. 先验证数据结构

在代码中添加验证语句,确认数据结构是否符合预期:

# 检查movies的数据类型
print(type(movies))
# 检查所有列名
print(movies.columns)

确保输出显示movies是pandas.DataFrame,且'title'在列名列表中。

2. 改用可靠的可迭代输入

Streamlit的st.selectbox支持列表、pandas Series等可迭代类型,推荐以下两种修改方式:

方式一:转换为列表

将.values替换为.tolist(),生成标准Python列表:

movie_list = movies['title'].tolist()
selected_movie_name = st.selectbox("Type or select a movie from the dropdown", movie_list)

方式二:直接传入pandas Series

无需转换,直接将movies['title']传入st.selectbox:

selected_movie_name = st.selectbox("Type or select a movie from the dropdown", movies['title'])

3. 排查数据来源

如果上述修改仍无效,检查movies的数据源加载逻辑,确保数据正确加载为pandas DataFrame,且title列没有被误处理为方法或其他非数据类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:15:39