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

使用Streamlit的st.write()等方法显示内容时始终出现None问题求助

问题分析与解决

问题根源

你的代码中recommend函数存在核心错误:

recommended_movies.append(print(movies.iloc[i[0]].title))

print()函数仅负责在控制台输出内容,它的返回值固定为None。这意味着你往recommended_movies列表中添加的全是None,后续用st.write()遍历输出时,自然会显示一串None。

修正方案

去掉print()包裹,直接将电影标题字符串添加到列表中:

def recommend(movie):
    movie_index = movies[movies['title'] == movie].index[0]
    distances = similarity[movie_index]
    movies_list = sorted(list(enumerate(distances)), reverse=True, key=lambda x: x[1])[1:6]

    recommended_movies = []
    for i in movies_list:
        # 直接添加电影标题字符串,而非print的返回值
        recommended_movies.append(movies.iloc[i[0]].title)
    return recommended_movies

修正后,recommended_movies列表会存储真实的电影标题,此时用st.write()、st.text()或st.markdown()遍历输出,都能正常显示推荐的电影名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:30:54