我有打印如下一個Python變量(數據庫記錄):如何「解包」這個元組
((79321L, Decimal('11.56125119')),)
什麼是打印這兩個值的最佳方法?我想做這樣的事情:
print("Count: {}, Result: {}".format(cur.fetchall()))
我有打印如下一個Python變量(數據庫記錄):如何「解包」這個元組
((79321L, Decimal('11.56125119')),)
什麼是打印這兩個值的最佳方法?我想做這樣的事情:
print("Count: {}, Result: {}".format(cur.fetchall()))
In [10]: a=((79321L, Decimal('11.56125119')),)
#a[0] is a tuple, use "*" to unpack a tuple when passing it as parameters:
In [11]: "Count: {}, Result: {}".format(*a[0])
Out[11]: 'Count: 79321, Result: 11.56125119'
看到how to unpack argument lists,並format examples
In [13]: "Count: %s, Result: %s"%a[0]
Out[13]: 'Count: 79321, Result: 11.56125119'
謝謝,但你能解釋'format(* a [0])嗎?我是Python新手,我以前沒有使用'*'。 – MountainX
@MountainX更新;) – zhangxaochen
左側拆箱需要匹配右側的結構。因此,這將工作:
((x, y),) = ((79321L, Decimal('11.56125119')),)
你有一個單項元組,其內容是兩個項目的元組
另一個選項,varitey:
value = ((79321L, Decimal('11.56125119')),)
a, b = list(value)[0]
這裏只需'value [0]'就足夠了 - 不需要構建一個'list'來解開它 –
如果你只期待一個單列的結果,那麼就使用.fetchone()
代替,然後你不必擔心拆包,如:
print('Count: {} Result: {}'.format(*cur.fetchone()))
或者,如果你有更多的,然後遍歷光標:
for row in cur:
print('Count: {} Result: {}'.format(*row))
如果你只期待一個單列的結果,那麼就使用'fetchone()'代替,然後你不不得不擔心這個... –