python data_error ai_generated true

one() 未找到任何行

sqlalchemy.orm.exc.NoResultFound: No row was found for one()

ID: python/sqlalchemy-orm-exc-no-result-found

其他格式: JSON · Markdown 中文 · English
80%修复率
84%置信度
0证据数
2025-04-05首次发现

版本兼容性

版本状态引入弃用备注
3.x active

根因分析

使用 .one() 方法但查询未返回任何行,该方法期望恰好一个结果。

English

Using .one() method when the query returns no rows, which expects exactly one result.

generic

解决方案

  1. 95% 成功率 Use one_or_none() with None check
    Use .one_or_none() and handle None explicitly, e.g., user = session.query(User).filter_by(id=1).one_or_none().
  2. 85% 成功率 Use first() method
    Use .first() if only the first result is needed, but be aware of potential multiple rows.

无效尝试

常见但无效的做法:

  1. Using scalar() instead 60% 失败

  2. Assuming default value exists 50% 失败