我正在编写一个类函数来打开/分析一个大的CSV文件(60MB)。你知道吗
在CSV文件中,有13个“行”(或类别,例如:产品、问题、消费者投诉、公司名称),每行下面有数千个单元格,其中充满了信息。你知道吗
这是我现在的代码:
class Company_Data:
def __init__ (self, ID, Company, Company_Response):
self.ID = ID
self.Company = Company
self.Company_Response = Company_Response
def Response_function (self):
if self.Company_Response == "In progress":
return "being resolved"
elif self.Company_Response == "Closed with explanation":
return "resolved with an explanation"
else:
return ("I don't know what sort of response the "+ self.Company + ""+ " gave to the complaint ID " +self.ID+ " .")
companies_list = []
company_file = open("Consumer_Complaints.csv","r")
for line in company_file:
company_data =line.strip().split(sep=",")
company = Company_Data(company_data[1], company_data[4])
companies_list.append(company)
company_file.close()
for x in companies_list:
print (x.Response_function())
尽管程序有时会打印带有正确公司名称的语句,例如:
“我不知道Transworld Systems INC对投诉ID 9999有何回应”
它还打印出如下行:
“我不知道4/23/2015对投诉ID 9999给出了什么样的答复”
在13行中的4行中,有空白单元格,这可能是日期 和公司时间搞混了,但我不能百分之百确定原因 这个错误。你知道吗
首先,您提到的属性(产品、问题、消费者投诉、公司名称)最好描述为列(通常是csv文件的第一行)。下面的每一行都是一行,行的分隔部分是单元格。你知道吗
您用来读取数据的方法,即简单地读取行,并用逗号分隔它们,并不能适用于每个CSV文件。CSV文件可以在单元格中包含逗号,更不用说在文件中分隔行的字符也可能包含在单元格的值中,然后必须处理这些单元格的转义,以及用于转义的字符的转义(取决于此CSV的来源,这可能以一种不寻常的方式完成)。关于如何格式化CSV文件,还没有一个正式的规范,但是有一个很接近的文档:https://tools.ietf.org/html/rfc4180但是如果你有一个声称是CSV文件的东西,那么一定有一个合理的方法来读取数据。你知道吗
我在调试方面的第一个想法是输出列表中的值,看看它们是否与CSV文件匹配。他们可能不会,在这种情况下,你在那里的其他东西永远不会正常工作。你知道吗
您可能需要使用一些东西来正确解析CSV文件。你知道吗
相关问题 更多 >
编程相关推荐