从空的MySQL查询结果返回列名

时间:2012-10-18 01:22:25

标签: python python-3.x mysql-connector

我使用Python 3.2.3,使用MySQL / Connector 1.0.7模块。如果MySQL查询返回空结果,有没有办法返回列名?

例如。说我有这个问题:

SELECT 
`nickname` AS `team`,
`w` AS `won`,
`l` AS `lost`
WHERE `w`>'10'

然而,如果没有超过10岁的人,那么它显然没有任何回报。现在,我知道我可以检查结果是None,但是,我可以让MySQL返回列名和NULL值吗?

如果您有点好奇,我之所以想知道这是否可行,是因为我根据列名动态构建了dict。所以,如果没有人超过10岁,上面的内容最终会看起来像这样......

[{'team':None,'won':None,'lost':None}]

看起来像是这样,如果发现3支球队超过10支......

[{'team':'Tigers','won':14,'lost':6},
 {'team':'Cardinals','won':12,'lost':8},
 {'team':'Giants','won':15,'lost':4}]

如果这种事情是可能的,那么我就不必在整个代码中编写大量的异常检查,以防空白的dict到处都是。

1 个答案:

答案 0 :(得分:0)

您可以先使用DESC table_name,您应该在第一列中获取列名

此外,您已经知道了dict中的键,因此您可以构建自己,然后在结果具有值的情况下向其添加内容。

[{'team':None,'won':None,'lost':None}]

但我不明白为什么你需要这个。如果你有一个list of dictionaries,我猜你会有循环操作。 For循环不会对空列表执行任何操作,因此您不必为异常检查而烦恼

如果您必须执行result[0]['team']之类的操作,那么您一定要检查len(result)>0