如何在Python中读取具有不同长度列的.csv文件?我想从.csv文件创建一个字典,其中.csv列作为字典值列表。
我已经想出了如何将字典写入.csv文件,但我需要帮助阅读相同的文件。
import csv
import itertools
path = 'C:/Users/.../test.csv'
out_dict = {
'Class1': ['A', 'B'],
'Class2': ['C', 'D', 'E', 'F', 'G', 'H', 'I'],
'Class3': ['J', 'K', 'L', 'M', 'N']}
# write dictionary to csv
with open(path, 'wt', newline='') as csv_file:
writer = csv.writer(csv_file)
writer.writerow(out_dict.keys())
writer.writerows(itertools.zip_longest(*out_dict.values()))
csv_file.close()
# read csv as dictionary
with open(path, 'rt') as csv_file:
reader = csv.reader(csv_file);
in_dict = ???
csv_file.close()
print(in_dict)
预期输出:
{'Class1': ['A', 'B'],
'Class2': ['C', 'D', 'E', 'F', 'G', 'H', 'I'],
'Class3': ['J', 'K', 'L', 'M', 'N']}
3条答案
按热度按时间ztyzrc3y1#
要读取CSV文件,我建议使用
csv.DictReader
:图纸:
xriantvc2#
正如Andrej所说,
DictReader
可能是一条路。我想出了一个稍微不同的方法:mccptt673#
您也可以使用json将dict写入文件,然后再读取。
图纸: