首页 > 解决方案 > 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)

标签: pythonsqlite

解决方案


嗨,这是因为您正在遍历行,所以您实际上是在试图获取第一列的行上。而是将您的代码更改为

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)

推荐阅读