我有一个数据库,我试图从中提取某些信息。
逻辑结构如下:
GC; QUERY
英尺; NAME(需要此字段)
FD; SEQUENCE(需要此字段)
FD; SEQUENCE
...(更多“fd;”字段)
英尺; NAME(需要此字段)
FD; SEQUENCE(只需要第一个fd)
...(更多fd;字段)
英尺; NAME(需要此字段)
FD; SEQUENCE(只需要第一个fd)
GC;另一个问题
此结构重复数千次,每次查询一次。我已经将我需要提取的字段括起来了。我尝试了以下代码,作为一个函数和一个代码片段,但它不起作用。我检查过变量范围是否正确。 我需要mylist包含与“ft”字段相同数量的条目。 使用我的代码,创建了mylist,但它是一个空列表。我的逻辑错误的任何想法?我使用的是python 2.6.5
mylist = []
query = raw_input("query: ")
flag = 0
for line in lines:
if line.startswith('gc; ' + query):
flag == 1
continue
elif line.startswith('fc; ') and flag == 1:
print line
flag = 1
elif line.startswith('fd; ') and flag == 1:
print line
mylist.append(line)
flag = 0
elif line.startswith('fd; ') and flag == 0:
continue
else:
continue
答案 0 :(得分:1)
在第6行代码中,flag == 1应该只有1个等号。否则,它永远不会被设置为1,然后其他检查失败。此外,除非下面有更多代码被截断,否则你不需要任何继续 - 它会自动进入循环的下一次迭代。