所以我想将列表中的字符串拆分成多个列表 像行[1]应该被拆分成列表m中包含的另一个列表 我在这里看到了它,并且可以访问m [0] [0]以获得第一个项目形式的第一个列表。 import csv
reader = csv.reader(open("alerts.csv"), delimiter=',')
)
rows=[]
for row in reader:
rows.append(row)
num_lists=int(len(rows))
lists=[]
m=[]
for x in rows:
m.append(x.split(';')[0])
打印行:
[['priority;status;time;object_class;host;app;inc;tool;msg'], ['P2;CLOSED;24-09-2016 20:06:41;nm;prod;;390949;HPNNM;call'], ['P2;CLOSED;24-09-2016 20:06:41;nm;prod;;390949;HPNNM;msg'], ['P2;CLOSED;24-09-2016 20:06:41;nm;prod;;390949;HPNNM;msg']]
和输出应该是这样的 m [0] [0]应返回pririty
答案 0 :(得分:1)
你可以用pandas轻松地做到这一点
import pandas as pd
A = pd.read_csv('yourfile.csv')
for x in A.values:
for y in x:
print y
所以'print y'语句访问行中的每个元素。但我的意思是,在“for value in A.values”中你可以做任何事情
答案 1 :(得分:0)
您问题的准确解决方案;你几乎把它弄好了(注意delimiter
值):
reader = csv.reader(open("alerts.csv"), delimiter=';')
table = [row for row in reader]
print(table[0][0])
>>> priority
为了便于数据处理,通常很好地显式提取标题,如下所示:
reader = csv.reader(open("alerts.csv"), delimiter=';')
header = reader.next()
table = [row for row in reader]
print(header[0])
print(table[0][0])
>>> priority
>>> P2
答案 2 :(得分:0)
以下是如何操作:
import csv
with open('alerts.csv') as f:
reader = csv.reader(f, delimiter=';')
next(reader) # skip over the first header row
rows = [row for row in reader]
>>> print(rows[0][0])
P2
这使用列表推导将CSV文件中的所有行读入列表。分隔符应该是分号,而不是逗号;所以使用delimiter=';'
。第一行也是标题,因此被跳过。