我正在Django上传和导入CSV文件。每行都有一个"描述"可能有换行符的字段。保存到Django TextField时,所有换行符都会丢失,这会导致所有格式都丢失。然后,用户已转到Web门户或管理控制台,并手动设置描述字段的文本格式。当你有数百条记录时,这真的很乏味且耗时。
导入CSV文件时是否有办法保持格式化?
目前我正在使用:
file = request.FILES['csv_file']
csv_file_data = [row for row in csv.reader(file.read().splitlines())]
答案 0 :(得分:1)
来自here:
def splitkeepsep(s, sep):
return reduce(lambda acc, elem: acc[:-1] + [acc[-1] + elem] if elem == sep else acc + [elem], re.split("(%s)" % re.escape(sep), s), [])
因此:
file = request.FILES['csv_file']
# Updated to reflect OP's comments:
csv_file_data = [row for row in csv.reader(splitkeepsep(file.read(), '\n'), dialect=csv.excel_tab)]
答案 1 :(得分:0)