我正在使用kinterbasdb模块,该模块有一个名为fetchone的函数,它返回执行查询的结果:
cursor.execute("....")
cursor.fetchone()
这会返回一个元组:("value1",)
,我希望访问第一个项目,但最后避免使用[0]
,因为这并不多,这是一个神奇的数字。可能吗?也许有些内置功能?
我试图用:
value, _ = cursor.fetchone()
但这是返回:ValueError: need more than 1 value to unpack
,因为索引1没有任何内容。
答案 0 :(得分:5)
问题:
<div class="con">
<div class="box">
<img src="http://www.w3schools.com/css/img_fjords.jpg">
</div>
</div>
这里在你要解包的元组中需要两个元素,但元组只包含一个元素。但是,您可以通过编写逗号来解决此问题,但不能使用以下变量:
value, _ = cursor.fetchone()
# ^ a variable with identifier _
请注意,必须写逗号value, = cursor.fetchone()
# ^ no variable
:省略它将不解包元组。
或者如果元组中的元素数量未知(但大于零),您可以使用aterisk:
,
将解包元组value, *_ = cursor.fetchone()
中的其余元素。如果表达式具有包含一个元素的元组,则_
将等于_
(没有元素的元组)。如果您为实例_ == ()
解压缩,则会生成(1,4,2,5)
和value == 1
。
答案 1 :(得分:0)
通过使用其索引访问元素会更容易,希望对您有所帮助,我使用一个非常基本的示例对此进行了解释:
def test_function():
return 1,3,4,5,6
#--- Getting function output using index ----#
print('',f()[0],' \n',f()[1],'\n',f()[2],' ..........')
结果:
1
3
4 ..........