如何在Python中将CSV变量的行读入多维数组?

5
字符串看起来像这样:
x = '''"High";"10";"Assigned";"2012/06/12 10:11:02"
"Low";"20";"Assigned";"2012/06/12 10:11:02"
"Medium";"30";"Assigned";"2012/06/12 10:11:02"'''

我希望它能像这样:
x = [
[High, 10, Assigned, 2012/06/12 10:11:02],
[Low, 20, Assigned, 2012/06/12 10:11:02],
[Medium, 30, Assigned, 2012/06/12 10:11:02]]

什么是解析这个的最佳方法?
3个回答

13
>>> import csv
>>> result = [row for row in csv.reader(x.splitlines(), delimiter=';')]
>>> import pprint
>>> pprint.pprint(result)
[['High', '10', 'Assigned', '2012/06/12 10:11:02'],
 ['Low', '20', 'Assigned', '2012/06/12 10:11:02'],
 ['Medium', '30', 'Assigned', '2012/06/12 10:11:02']]

1
使用标准库并考虑到不同的CSV方言,给你加1分! - daedalus

0
out = []
for line in x.splitlines():
    out.append( line.split(';') )

或者,一行代码解决:

out = [line.split(';') for line in x.splitlines()]

0
使用列表推导式的一行代码:
[line.split(';') for line in x.replace('"','').split('\n')]

给出:

[['High', '10', 'Assigned', '2012/06/12 10:11:02'],
 ['Low', '20', 'Assigned', '2012/06/12 10:11:02'],
 ['Medium', '30', 'Assigned', '2012/06/12 10:11:02']]

同时也会在结果中去除 ",只保留单引号 '


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接