2017-08-14 142 views
-3

我无法从下面附加的代码接收某些输出。出于某种原因,我拥有的代码仅输出我想要的5条线中的3条。我认为原因是一切都必须在同一条线上。无论如何我可以解决这个问题。我还发布了Excel表格,让你知道我在说什么。 Excel Sheet另外我的输出结果如下图所示为2017年。阅读Excel文件Python

 Select Year: 2017 
    ('126614', '126541', '125', '11') 
    ('126615', '126523', '86', '32') 
    ('126616', '126524', '59', '56') 
  • import csv 
    with open('Data_2016.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    year=raw_input("Select Year: ") 
    
        for row in reader: 
         Yearlink=row['Yearlink'] 
          year=row['Year'] 
           if year==Yearlink: 
            print(row['From'], row['To'],row['Maxx'],row['Minn']) 
    
+1

发生,因为检查u必须添加 '如果一年== Yearlink:' 结果只有3行。 (2017年仅有3行) –

+1

在您的数据中似乎只有三个'2017'条目? – Miket25

+0

是的,这是故意完成的。 2017年需要包含更多数据。与2017年一样,有三个数据点,但我需要输出5个数据点。有没有一种方法可以做到这一点与2017年为年yearlinkup标记为2017年 – Mark

回答

0

我不知道你注意到没有,但你覆盖你输入year行数8 你的代码实际上是返回的所有行上Yearlink等于year

这是一个更正的版本。

import csv 
with open('Data_2016.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    year=raw_input("Select Year: ") 

    for row in reader: 
     Yearlink=row['Yearlink'] 
     if year==Yearlink: 
      print(row['From'], row['To'],row['Maxx'],row['Minn']) 
+0

有没有一种方法可以使结果不仅在每一行中都返回一年,而且在2017年可能会显示为年份链接 – Mark

+0

2018年它不会输出任何内容 – Mark

+0

我不确定是否理解您的问题。 您输入您正在查找的年份,并返回'Yearlink'等于您的输入的行。 如果你输入2018,它应该返回Yearlink等于2018的所有行。 –