将csv数据保存到字典



我有一个包含这些数据的csv文件:

Sensor 1;;
9;5;9
6;4;7
4;2;1
Sensor 2;;
10;7;8
4;4;6
3;5;8
Sensor 3;;
5;4;6
5;1;2
9;7;1

我已经尝试了很多事情,但它并不适合我所有类型的数据。我让它读取一行并保存在一个列表中,然后连续这样做,但它对我不起作用。程序应该做的是询问您想要哪个传感器,并返回传感器名称,并将路径显示为字典中的数组。一个示例如下:

Sensor 1 : press 1
Sensor 2 : press 2
Sensor 3 : press 3
{Sensor 1: [[9,5,9],[6,4,7],[4,2,1]]}

代码必须没有导入

试试这个:

import csv
with open('file.csv', 'r') as file:
reader = csv.reader(file,  delimiter = ";")
out_dict = {}
current_key = ""
for row in reader:
if "Sensor" not in row[0]:
if current_key:
out_dict[current_key].append(row)
else:
current_key = row[0]
out_dict[current_key] = []

print(out_dict)

或不带csv

with open('file.csv', 'r') as file:
out_dict = {}
current_key = ""
for line in file.readlines():
row = line.strip().split(';')
if "Sensor" not in line:
if current_key:
out_dict[current_key].append(row)
else:
current_key = row[0]
out_dict[current_key] = []

print(out_dict)

这里有一种不需要导入的方法:

with open('file.csv') as f:
t=f.readlines()
res={}
temp=''
for i in range(len(t)):
if t[i][:6]=='Sensor':
temp=t[i].strip().replace(';;', '')
res[temp]=[]
else:
res[temp].append(t[i].strip().split(';'))
print(res)

输出:

{'Sensor 1': [['9', '5', '9'], ['6', '4', '7'], ['4', '2', '1']], 'Sensor 2': [['10', '7', '8'], ['4', '4', '6'], ['3', '5', '8']], 'Sensor 3': [['5', '4', '6'], ['5', '1', '2'], ['9', '7', '1']]}

相关内容

  • 没有找到相关文章

最新更新