首页 > 解决方案 > 如何修复从我的数据库文件中返回无值的选择语句

问题描述

我确实花了两天时间弄清楚我的代码会发生什么。我从我的数据框中创建了一个数据库文件。问题是,当我执行包含带有整数列的 where 语句的 select 语句时,我得到了返回的记录,但是当我使用字符串列时,我没有得到任何值。

con = sqlite3.connect("sqladb.db")

select_str='''select * from sqladb  where age=40 limit 2;'''
results=con.execute(select_str)
for rec in results:
    print(rec)

上面的代码返回记录

select_str='''select * from sqladb  where sex='Male' limit 2;'''
results=con.execute(select_str)
for rec in results:
    print(rec)

上面的代码在有记录时返回 None 值。列性别是一个字符串。

根据我的陈述,我希望输出带有记录。

从评论复制:

CREATE TABLE "sqladb" ( "age" INTEGER, "workclass" TEXT, "fnlwgt" INTEGER, "education" TEXT, "education-num" INTEGER, "marital-status" TEXT, "occupation" TEXT, "relationship" TEXT, "race" TEXT, "sex" TEXT, "capital-gain" INTEGER, "capital-loss" INTEGER, "hours-per-week" INTEGER, "native-country" TEXT, "label" TEXT )

(39, ' State-gov', 77516, ' Bachelors', 13, ' Never-married', ' Adm-clerical', ' Not-in-family', ' White', ' Male', 2174, 0, 40, ' United-States', ' <=50K') 
(50, ' Self-emp-not-inc', 83311, ' Bachelors', 13, ' Married-civ-spouse', ' Exec-managerial', ' Husband', ' White', ' Male', 0, 0, 13, ' United-States', ' <=50K') 
(38, ' Private', 215646, ' HS-grad', 9, ' Divorced', ' Handlers-cleaners', ' Not-in-family', ' White', ' Male', 0, 0, 40, ' United-States', ' <=50K') 

标签: pythonselectsqlite

解决方案


推荐阅读