我有一个Python变量(数据库记录),打印如下:
((79321L, Decimal('11.56125119')),)
打印这两个值的最佳方法是什么?我想做这样的事情:
print("Count: {}, Result: {}".format(cur.fetchall()))
答案 0 :(得分:2)
左侧拆包需要与右侧的结构相匹配。所以这将有效:
((x, y),) = ((79321L, Decimal('11.56125119')),)
你有一个单项元组,其内容是一个两项元组
答案 1 :(得分:2)
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'
答案 2 :(得分:2)
如果您只期望单行,那么只需使用.fetchone()
,然后您就不必担心解压缩,例如:
print('Count: {} Result: {}'.format(*cur.fetchone()))
或者,如果你有更多,那么循环光标:
for row in cur:
print('Count: {} Result: {}'.format(*row))
答案 3 :(得分:1)
另一种选择,对于varitey:
value = ((79321L, Decimal('11.56125119')),)
a, b = list(value)[0]