Django - 导入CSV文件时保持换行符

时间:2014-08-24 03:45:04

标签: python django excel csv import

我正在Django上传和导入CSV文件。每行都有一个"描述"可能有换行符的字段。保存到Django TextField时,所有换行符都会丢失,这会导致所有格式都丢失。然后,用户已转到Web门户或管理控制台,并手动设置描述字段的文本格式。当你有数百条记录时,这真的很乏味且耗时。

导入CSV文件时是否有办法保持格式化?

目前我正在使用:

file = request.FILES['csv_file']

csv_file_data = [row for row in csv.reader(file.read().splitlines())]   

2 个答案:

答案 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)

我在使用 django-import-export 时遇到了同样的问题。

我最终覆盖了 Variable.Codigo 方法(但请告诉我是否有更好的方法):

DIST