查看CSV模块。 csv.DictReader类将CSV文件行放置到字典中,并将标题行字段作为字典键。但是请注意,CSV模块将数据作为字符串读取,因此您可能需要进行一些类型转换。
import csv
with open('favorite_color.csv', 'rb') as csvfile:
reader = csv.DictReader(csvfile)
data = {}
for row in reader:
for field, value in row.iteritems():
if not field in data:
data[field] = [value]
else:
data[field].append(value)
data['correct_answers'] = [int(val) for val in data['correct_answers']]
boolval = {'true': True, 'false': False}
data['cross_bridge'] = [boolval[val.lower()] for val in data['cross_bridge']
它将CSV的内容很好地放入字典中。
In [2]: data
{'correct_answers': [0, 3, 3, 2],
'cross_bridge': [False, True, True, False],
'favorite_color': ['orange', 'green', 'blue', 'yellow'],
'first_name': ['Dirk', 'King', 'Lancelot', 'Sir'],
'last_name': ['Diggler', 'Arthur', 'du Lac', 'Galahad']}
In [3]: data['cross_bridge'][0]
Out[3]: False
或者,如果你真的想每一行是一个列表,你可以使用CSV。阅读()代替:
import csv
with open('favorite_color.csv') as csvfile:
reader = csv.reader(csvfile)
data = []
for row in reader:
data.append(row)
,让你列表的列表:
In [5]: data
Out[5]:
[['first_name',
'last_name',
'favorite_color',
'correct_answers',
'cross_bridge'],
['Dirk', 'Diggler', 'orange', '0', 'False'],
['King', 'Arthur', 'green', '3', 'True'],
['Lancelot', 'du Lac', 'blue', '3', 'True'],
['Sir', 'Galahad', 'yellow', '2', 'False']]
下面是CSV模块的文档:
https://docs.python.org/3.5/library/csv.html#csv.reader
您提到的array
你的问题。我不确定这是你真正想要的。 Python数组必须都包含相同的数据类型。给出的例子没有。下面是Python的数组的文档:
https://docs.python.org/2/library/array.html
希望帮助!
这里没有数组。仅列出 –
解析CSV文件的方式有问题。你确定它是用逗号分隔的吗?请包含myfile.csv的第一行和匹配的'print(csvFileArray [0])'。 – DyZ
'csv.reader()'应该已经将它分解成一个列表。 – AChampion