在未引用的字段错误中看到的 CSV 换行符 [英] CSV new-line character seen in unquoted field error
本文介绍了在未引用的字段错误中看到的 CSV 换行符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
直到今天,当我从 Windows 机器导入并出现此错误时,以下代码仍然有效:
the following code worked until today when I imported from a Windows machine and got this error:
在未加引号的字段中看到换行符 - 您是否需要以通用换行符模式打开文件?
import csv
class CSV:
def __init__(self, file=None):
self.file = file
def read_file(self):
data = []
file_read = csv.reader(self.file)
for row in file_read:
data.append(row)
return data
def get_row_count(self):
return len(self.read_file())
def get_column_count(self):
new_data = self.read_file()
return len(new_data[0])
def get_data(self, rows=1):
data = self.read_file()
return data[:rows]
我该如何解决这个问题?
How can I fix this issue?
def upload_configurator(request, id=None):
"""
A view that allows the user to configurator the uploaded CSV.
"""
upload = Upload.objects.get(id=id)
csvobject = CSV(upload.filepath)
upload.num_records = csvobject.get_row_count()
upload.num_columns = csvobject.get_column_count()
upload.save()
form = ConfiguratorForm()
row_count = csvobject.get_row_count()
colum_count = csvobject.get_column_count()
first_row = csvobject.get_data(rows=1)
first_two_rows = csvobject.get_data(rows=5)
推荐答案
查看 csv 文件本身会很好,但这可能对你有用,试一试,替换:
It'll be good to see the csv file itself, but this might work for you, give it a try, replace:
file_read = csv.reader(self.file)
与:
file_read = csv.reader(self.file, dialect=csv.excel_tab)
或者,用通用换行模式
打开一个文件并将其传递给csv.reader
,例如:
Or, open a file with universal newline mode
and pass it to csv.reader
, like:
reader = csv.reader(open(self.file, 'rU'), dialect=csv.excel_tab)
或者,使用splitlines()
,像这样:
def read_file(self):
with open(self.file, 'r') as f:
data = [row for row in csv.reader(f.read().splitlines())]
return data
这篇关于在未引用的字段错误中看到的 CSV 换行符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文