2016-11-30 58 views
0

我当前正在搞乱两个CSV文件。基本上,我的目标是仅当第一列匹配名称并且第二列匹配日期(将从开始日期到结束日期)时,才从CSV文件的第三列获取值。我一直在测试如何执行此操作,但由于不断收到相同的错误,所以我没有完全明白我的答案。Python错误:int对象不是可订阅的

这里是我当前的尝试:

name = "Art" 
for line in all_words_csv: 
    if(line[0] == name): 
     for line in range(1900, 1908): 
      print(line[2]) 

目前在Python 3.5

感谢。

编辑:我期待这片给我看在第3列中的所有值,但数字过大是真实的:

for line in all_words_csv: 
if(line[0] == name): 
    for line[1] in range(1900, 1908): 
     print(line[2]) 
+4

'有效范围内(1900年,1908年)行所追求的东西:'...我不'你不认为你想命名这个值'行'(它会覆盖all_words_csv中的行) –

+0

哎呀。现在它是有道理的。对不起,仍然在与Python – tokyolerd

回答

2

您已改写了line值与上年范围。

没有看到你的文件,我觉得你这个样子

name = "Art" 
for line in all_words_csv: 
    if(line[0] == name): 
     for year in range(1900, 1908): 
      if str(year) == line[2]: 
       print(line[2]) 

或可能

name = "Art" 
for line in all_words_csv: 
    if(line[0] == name): 
     if line[2] in map(str, range(1900, 1908)) 
      print(line[2]) 
+0

搞混。但如何,例如,如果我这样做: 在all_words_csv中的行: if(line [0] == name): line [1] in range(1900,1908): print(line [ 2]) – tokyolerd

+0

我不认为'range [1] in range'是有效的语法 –