我正在处理我的python脚本以从数据库中提取数据。
我想在channel
循环之外的变量for index in range
获得一些帮助。
当我尝试这个时:
for row in cur:
channels = row[0].encode('ascii')
channelList.append(channels)
for index in range(0, CHANNELS_PER_PAGE):
channel = channelList[index]
print channel
#get the programs list
cur.execute('SELECT channel, title, start_date, stop_date FROM
programs WHERE channel=?', [channel])
programs = cur.fetchall()
start_pos = 368 # indent for first program
for row in programs:
title = row[1].encode('ascii')
如果我使用上面的代码在for index in range
循环中打印频道,我会得到这个:
23:32:03 T:1164 NOTICE: 101 ABC FAMILY
23:32:03 T:1164 NOTICE: 102 CBS
23:32:03 T:1164 NOTICE: 103 CNN USA
23:32:03 T:1164 NOTICE: 105 ESPN USA
23:32:03 T:1164 NOTICE: 106 Fox News
23:32:03 T:1164 NOTICE: 107 Animal Planet
23:32:03 T:1164 NOTICE: 108 USA Network
所以当我尝试这个时:
for row in cur:
channels = row[0].encode('ascii')
channelList.append(channels)
for index in range(0, CHANNELS_PER_PAGE):
channel = channelList[index]
print channel
#get the programs list
cur.execute('SELECT channel, title, start_date, stop_date FROM programs
WHERE channel=?', [channel])
programs = cur.fetchall()
start_pos = 368 # indent for first program
for row in programs:
title = row[1].encode('ascii')
如果我在循环之外使用print channel
,我会得到这个:
23:30:09 T:5828 NOTICE: 108 USA Network
我想将循环for row in programs:
置于for index in range
循环之外,并使用变量channel
来阻止我的代码触发。
如何使用获取频道列表以允许我为for index in range
循环之外的每个频道进行打印?
答案 0 :(得分:0)
在第一个程序中,对于频道列表中的每个频道,您可以打印其名称并从数据库中获取程序。但是,在第二个程序中,您删除了缩进。这会导致您的程序打印并仅从频道列表中获取最后一个频道。
使用您的程序逻辑,您不应该从外部for row in programs
删除from index in range
,尽管您可以使用一些list comprehensions并完成它。