我使用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到处都是。
答案 0 :(得分:0)
您可以先使用DESC table_name,您应该在第一列中获取列名
此外,您已经知道了dict中的键,因此您可以构建自己,然后在结果具有值的情况下向其添加内容。
[{'team':None,'won':None,'lost':None}]
但我不明白为什么你需要这个。如果你有一个list of dictionaries
,我猜你会有循环操作。 For循环不会对空列表执行任何操作,因此您不必为异常检查而烦恼
如果您必须执行result[0]['team']
之类的操作,那么您一定要检查len(result)>0