2016-12-16 80 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