我正在尝试使用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并逐行渲染值的任何想法?
提前致谢!
答案 0 :(得分:1)
如果“开始”是一个列表,则可以使用:
for i in range(len(start)):
print start[i]
要了解start
是什么以及如何处理它,您可以执行type(start))
。如果它是某种SQL游标,它就没有长度属性,但是你应该可以这样做:
for i in start:
print i