[英]Python: CSV File to Dictionary without csv module
我知道答案还有很多其他问题,但是我想知道如何将CSV文件读入嵌套字典中。 因此,它可能来自以下内容:
'''"YEAR","GENDER","NAME","COUNT"
"2011","FEMALE","A","100"
"2012","FEMALE","A","50"
"2012","FEMALE","B","10"
"2012","FEMALE","C","10"
"2012","FEMALE","D","5"
"2013","FEMALE","A","1000"
'''
对于这样的事情:
{('B', 'FEMALE'): {2012: (10, None)},
('C', 'FEMALE'): {2012: (10, None)},
('A', 'FEMALE'): {2011: (100, None),
2012: (50, None),
2013: (1000, None)},
('D', 'FEMALE'): {2012: (5, None)}}
但是我需要不导入任何内容来执行此操作,因此无法使用CSV模块。 这是一个一般的例子。 我需要代码可以处理多个可能比这个更长或更短的案例。
(共有11个文件,这是其中之一,这里的文本与文件中的内容完全相同:
"YEAR","GENDER","NAME","COUNT"
"2011","FEMALE","A","100"
"2012","FEMALE","A","50"
"2012","FEMALE","B","10"
"2012","FEMALE","C","10"
"2012","FEMALE","D","5"
"2013","FEMALE","A","1000"
answer = {}
with open('path/to/file') as infile:
infile.readline() # we don't care about the header row
for line in infile:
year, gender, name, count = (s.strip('"') for s in line.split(','))
key = (name, gender)
if key not in answer: answer[key] = {}
answer[key][int(year)] = (int(count), None)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.