python - python sqlite为什么将值解释为列
问题描述
OperationalError:没有这样的列:fcf6082d3ada7b0ed771349398b0d91d5b2cd76f fcf6082d3ada7b0ed771349398b0d91d5b2cd76f 在我的代码中是 item[0]。
我不知道为什么item[0]
被解释为一列。
此代码在另一个数据库上运行良好。
非常感谢!这是我的代码:
database = sql.connect('database.db')
database_cursor=database.cursor()
hashh=database_cursor.execute(f"SELECT DISTINCT hash FROM commits").fetchall()
for item in hashh:
find=genugate_cursor.execute(f"SELECT * FROM edits WHERE commit_hash={item[0]}").fetchall()
print(find)
解决方案
嗨,这是因为您正在遍历行,所以您实际上是在试图获取第一列的行上。而是将您的代码更改为
database_cursor=database.cursor()
hashh=database_cursor.execute(f"SELECT DISTINCT hash FROM commits").fetchall()
for item in hashh:
find=genugate_cursor.execute(f"SELECT * FROM edits WHERE commit_hash={item}").fetchall()
print(find)
推荐阅读
- reactjs - 无法在 Jest Test 模块中的模块外使用 import 语句
- rust - 在 rust-webpack-template 的“reqwest”中找不到“阻塞”
- javascript - Google AdSense 审核不断返回,但没有内容错误(JavaScript 客户端呈现)
- javascript - 将多个json对象转换为对象数组
- html - 使用 HTML5 模式进行验证
- reactjs - react js创建本地数据库的方法
- mysql - MySQL 5.7.25 [innoDB],索引基数突然重置/变回 1
- c# - C# 字符串和数字正则表达式
- angular - Angular 9 与 ui 路由器混合导致尝试在设置 AngularJS 注入器之前获取它。如何调试/修复?
- python - 如何加速 Pandas 循环