循环使用SQL和Python

时间:2015-10-06 00:59:47

标签: python

我正在尝试使用Python和导入的SQL数据创建循环。现在我可以为任何硬编码值运行循环,但是在添加变量i时我收到错误。以下是我目前的代码:

start = %sql SELECT * FROM streets
end = %sql SELECT * FROM streets

#path.keys
# [u'id', u'value1', u'value2', u'value3', u'value4']

for i in start:
    print start[3][4]

这将打印出第3行value4中的重复值。我要做的是重写循环,以便它将呈现第i行的值。例如

for i in start:
    print start[i][4]

然而这给了我一个错误

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-215-bc2196cf4539> in <module>()
      5 
      6 for i in start:
----> 7     print start[i][4]
      8 

/Users/xxxxx/homebrew/lib/python2.7/site-packages/sql/run.pyc in __getitem__(self, key)
    136             result = [row for row in self if row[0] == key]
    137             if not result:
--> 138                 raise KeyError(key)
    139             if len(result) > 1:
    140                 raise KeyError('%d results for "%s"' % (len(result), key))

关于如何重写这个以拉入i并逐行渲染值的任何想法?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果“开始”是一个列表,则可以使用:

for i in range(len(start)):
    print start[i]

要了解start是什么以及如何处理它,您可以执行type(start))。如果它是某种SQL游标,它就没有长度属性,但是你应该可以这样做:

for i in start:
    print i