2016-12-16 69 views
0
db_path = "./db_file.csv" 
db_read = open(db_path, "r") 
for row in db_read: 
    g_tag = (row)[1] 

我的代码没有按预期访问第二列。相反,它会返回第0列的第二个字符。不要发生什么事。CSV阅读器没有获得列值

+0

您可以提供您的CSV文件的前几行作为一个例子一起工作呢? – Kelvin

+0

给你的'csv'数据,可能会有一些数据。 – Nilesh

回答

0

您需要使用csv module直观地解析CSV文件,否则,你可以只使用row.split(',')获得价值

1

萨拉赫是正确的,但我建议不要直接解析csv文件:

In [63]: with open('output.csv', 'r') as f: 
    ...:  reader = csv.reader(f) 
    ...:  for row in reader: 
    ...:   print row 
    ...: 
['latitude', 'local_time', 'longitude', 'time'] 
['51.2997804', '20:01:14:334 11 08 2015 +0100 GMT+01:00', '1.070336', '1439319674334'] 
['51.2997889', '20:01:34:428 11 08 2015 +0100 GMT+01:00', '1.0703332', '1439319694428'] 
['51.2997794', '20:01:54:638 11 08 2015 +0100 GMT+01:00', '1.0703123', '1439319714638'] 
0

忘了这样做:

 db_read = open(db_path, 'r') 
     db_reader = csv.reader(db_read) 
+0

如果您希望遵循最佳实践,我会非常鼓励您使用上下文管理器(使用open('your.csv','r')作为文件:),这将为您关闭文件对象,它的a好习惯进入。 – Kelvin