【发布时间】:2020-06-08 21:50:30
【问题描述】:
作为作业的一部分,我必须在不使用任何库的情况下提取 .csv 文件。 Top 3 元素如下:-
"ID","Name","Sex","Age","Height","Weight","Team","NOC","Games","Year","Season","City","Sport","Event","Medal"
"1","A Dijiang","M",24,180,80,"China","CHN","1992 Summer",1992,"Summer","Barcelona","Basketball","Basketball Men's Basketball",NA
"2","A Lamusi","M",23,170,60,"China","CHN","2012 Summer",2012,"Summer","London","Judo","Judo Men's Extra-Lightweight",NA
"3","Gunnar Nielsen Aaby","M",24,NA,NA,"Denmark","DEN","1920 Summer",1920,"Summer","Antwerpen","Football","Football Men's Football",NA
我尝试如下实现:
csv_data = []
with open('olympic.csv') as csv_file:
for line in csv_file:
line = line.strip()
line = line.split(',')
temp = []
for element in line:
if element[0] == '"' or element[-1] == '"':
temp.append(element[1 : -1])
else:
temp.append(element)
csv_data.append(temp)
这给出了大致正确的答案,但问题是当 Name 和 Event 列包含 "," 字符时它,例如
"," in Name column
"5965","Dionisio Augustine, II","M",24,153,65,"Federated States of Micronesia","FSM","2016 Summer",2016,"Summer","Rio de Janeiro","Swimming","Swimming Men's 50 metres Freestyle",NA
"7208","Carlos Zenon Balderas, Jr.","M",19,175,60,"United States","USA","2016 Summer",2016,"Summer","Rio de Janeiro","Boxing","Boxing Men's Lightweight",NA
"," in Event column
"2304","Michael Albasini","M",31,172,67,"Switzerland","SUI","2012 Summer",2012,"Summer","London","Cycling","Cycling Men's Road Race, Individual",NA
"250","Saeid Morad Abdevali","M",22,170,80,"Iran","IRI","2012 Summer",2012,"Summer","London","Wrestling","Wrestling Men's Welterweight, Greco-Roman",NA
有没有什么合适的方法可以不使用标准库来解决这个问题?
【问题讨论】:
-
排除标准库的原因是什么?
-
这是课堂作业的一部分。我尝试了很多策略,但没有一个有效
-
你可能会数出你已经看到了多少个“s”。或者尝试编写某种解析器。祝你好运。
标签: python python-3.x dataframe csv