在Python中使用字典上的比较运算符

时间:2013-11-23 19:21:45

标签: python

我想要在特定数字范围内的特定行中读取一段代码。如果我使用例如row['DISTANCE'] <= '300':该语句返回&#39; 300&#39;但也是任何大于&#39; 300的数字。我想将特定行写入特定范围内的文件。此外,例如,如果语句是row['SCHEDULED'] < row['PERFORMED'],则它可以工作。有什么建议吗?

以下是代码段:

with open('test.csv', 'rb') as infile:

    reader = csv.DictReader(infile) 
    fieldnames = ['SCHEDULED','PERFORMED','AVAIL', 'DIST']

    outfile = open('ttest.csv','wb')    
    csvwriter = csv.DictWriter(outfile, delimiter=',', fieldnames=fieldnames, extrasaction = 'ignore')      
    csvwriter.writerow(dict((fn,fn) for fn in fieldnames))

    for row in reader:
        if ['DISTANCE'] <= '300':
            csvwriter.writerow(row)

infile.close()                                                      
outfile.close()

这是我的outfile的样本:

SCHEDULED                        PERFORMED      AVAIL      DIST
142                                 139         19459      1061
22                                  20          0          278
21                                  19          0          278
21                                  20          0          278
22                                  21          0          1484

1 个答案:

答案 0 :(得分:2)

字符串比较不遵循与整数比较相同的规则。你想要的是整数比较,即:

if int(row["DISTANCE"]) <= 300:
    proceed_with_row(...)