0

我有一个数据库,我试图从中提取某些信息。

逻辑结构如下:

GC; 询问

英尺;姓名(需要此字段)

fd; SEQUENCE(需要这个字段)

fd; 顺序

...(更多“fd;”字段)

英尺;姓名(需要此字段)

fd; 序列(只需要第一个 fd)

...(更多 fd;字段)

英尺;姓名(需要此字段)

fd; 序列(只需要第一个 fd)

GC; 另一个查询

这种结构重复了数千次,每个 QUERY 一个。我已将需要提取的字段括起来。我尝试了以下代码,既作为函数又作为片段,但它不起作用。我检查了变量范围是否正确。我需要 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
4

1 回答 1

1

在第 6 行代码中,flag == 1 应该只有 1 个等号。否则,它永远不会被设置为 1,这会导致您的其他检查失败。此外,除非在被截断的代码下方有更多代码,否则您不需要任何这些 continue - 它会自动进入循环的下一次迭代。

于 2011-05-19T11:33:10.580 回答