将格式设置为cursor.fetchall()resu

2024-04-29 07:54:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用mysql.connection library到Python,我有以下方法:

query = ("select " + columns + " from " + table)
self.cursor.execute(query)
data = self.cursor.fetchall()
for row in data:
    print row

在我的打印行中,我得到了这样的信息:

(u'Kabul', u'AFG', u'Kabol', 1780000)

我想把它作为一个字符串,结果是:

Kabul AFG Kabol 1780000

我可以做到:

print row[0] + ' ' + row[1] + row[2] + ' ' + row[3]

但是,如果用户设置的查询少于4列或多于4列,那么它将不起作用。

我也在考虑元组中的循环,但是我得到了这样的结果:

Kabul
AFG
Kabol
1780000

有什么想法吗?


Tags: columns方法selfdatalibrarymysqlconnectionquery
2条回答

您可以使用join,但是在加入混合unicode和整数的列表时会遇到错误。使用内置的str函数和列表理解来创建预期的输出。

print ' '.join(str(x) for x in row)

如果rowtuple,则可以使用空格连接其中的每个值:

print " ".join(row)
# Kabul AFG Kabol 1780000

所以,用户选择了多少列并不重要,它总是加入row拥有的列。

更新:

以上代码仅在行中的值为字符串时有效,因此需要首先将值转换为字符串,然后连接

print " ".join(map(str, row))

相关问题 更多 >