python查询数据库,TypeError: 'NoneType' object is not subscriptable

脚本的目的是:
查询数据库,
1 将查询结果打印,
2 获得结果中的第一个值;3 打印出来

x=c.execute("select col_id from T_MARKET_NEWS_COLUMN  where name= '%s' " % name )
print(x.fetchone())
clo_list=x.fetchone()
print(clo_list[0])

感觉思路是对的,但是运行时,报错了,好心塞。
结果:
(91,)
Traceback (most recent call last):
File “new_type.py”, line 70, in
print(clo_list[0])
TypeError: ‘NoneType’ object is not subscriptable

为什么呢?网上搜了一下,有人这么说:https://blog.csdn.net/aeolus1019/article/details/43792595
cx_Oracle 中不能同时获取2个游标

1 所以我将脚本改了一下, 如下

x=c.execute("select col_id from T_MARKET_NEWS_COLUMN  where name= '%s' " % name )
clo_list=x.fetchone()
print(clo_list[0])

运行后,不报错。
结果是:
91

2 可是,我对网上的那个答案很疑惑,因为我走了下面的脚本,运行正常不报错(也有可能是我对他答案的理解有误)

x=c.execute("select col_id from T_MARKET_NEWS_COLUMN  where name= '%s' " % name )
print(x.fetchone())#返回的是元组
print(x.fetchall())#返回的是列表

结果:
(91,)
None

3 然后,我将脚本中fetchone和fetchall调整了了顺序:

x=c.execute("select col_id from T_MARKET_NEWS_COLUMN  where name= '%s' " % name )
print(x.fetchall()) 
print(x.fetchone())

结果是:
[(91,)]
None

道理还没弄明白
希望大神指导,感激不敬!

你可能感兴趣的:(python接口测试,python数据库)