【发布时间】:2020-09-08 12:26:06
【问题描述】:
我是编程新手,如果有人能指导我从我卡住的地方找到正确的路径,我将不胜感激。我已将 .csv 文件中的值导入字典。 CSV 文件包含以下数据(前 12 行):
Project,Sub_ID,Type
2,6,Full
4,1,Full
6,6,Partial
6,7,Partial
6,8,Full
6,9,Full
6,10,Partial
6,11,Partial
7,4,Full
7,5,Full
7,6,Full
我试图创建一个字典,其中一个键将包含一个项目编号,然后是它的 Sub_IDs 和 Types。基本上,我根据上面提供的 CSV 数据寻求类似于以下输出的内容。
{Project: 2, Sub_ID:(6), Type:(Full)
Project: 5, Sub_ID:(1), Type:(Full)
Project: 6, Sub_ID:(6, 7, 8, 9, 10, 11), Type:(Partial, Partial, Full, Full, Partial, Partial)
Project: 7, Sub_ID:(4, 5, 6), Type:(Full, Full, Full)}
我尝试将 .csv 中的数据合并到一个字典中,并通过字典循环识别哪些项目有多个 sub_ID 和 类型。但是,我无法完成代码以获得所需的输出。我目前使用的代码如下:
import csv, sys
filename = 'Test Data.csv'
file_list = []
with open(filename, 'rb') as f:
reader = csv.DictReader(f)
try:
for row in reader:
file_list.append(row)
except csv.Error as e:
sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))
print file_list
project = []
sub_id = []
type = []
for i in file_list:
project.append(i["Project"])
sub_id.append(i["Sub_ID"])
type.append(i["Type"])
for i, val in enumerate(project):
if val == project[i-1] or val == project[i+1] :
print (i, ",",val," - Have multiple Sub_ID and Type")
else:
print (i, ",",val," - Do NOT have multiple Sub_ID and Type ")
任何实现我所需输出的方向或帮助都会非常有帮助。
【问题讨论】:
-
你提供的输出不是有效的Python,你能提供一个有效的Python输出吗?
-
我没有 python 输出。我想得到类似的东西。即要分组到单个项目 ID 的 Sub_ID 和类型
标签: python python-3.x csv dictionary