[英]Using a Comparison Operator on a Dictionary in Python
我有一段代碼,我想在特定數字范圍內的特定行中讀取。 例如,如果我使用row['DISTANCE'] <= '300'
:該語句返回'300',但也返回任何大於'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()
這是我的外表看起來的一個示例:
SCHEDULED PERFORMED AVAIL DIST
142 139 19459 1061
22 20 0 278
21 19 0 278
21 20 0 278
22 21 0 1484
字符串比較不遵循與整數比較相同的規則。 您想要的是整數比較,即:
if int(row["DISTANCE"]) <= 300:
proceed_with_row(...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.