首页 > 解决方案 > 从 Django Web 表单解析 csv 的问题

问题描述

我希望有人可以帮助我解决这个问题。我从 Django 的表单中获取一个文件,这个文件是一个 csv,我正在尝试使用 Python 的库csv来读取它。这里的问题是,当我应用函数csv.reader并将结果转换为列表以便打印时,我发现csv.reader没有正确拆分我的文件。这是一些显示问题的图像

这是我的 csv 文件: 在此处输入图像描述

这是我的代码: 在此处输入图像描述

这是变量file_readed的打印值: 在此处输入图像描述

正如您在图片中看到的,它似乎是逐个字符地分割我的文件,但有一些例外。我感谢您为我提供的任何帮助。

标签: pythondjangocsv

解决方案


如果您从 Web 表单中提取,请尝试将 csv 作为字符串获取,在打印或调试工具中确认结果正确,然后使用 StringIO 将其传递给 csv。

from io import StringIO
import csv

csv_string = form.files['carga_cie10'].file_read().decode(encoding="ISO-88590-1")
csv_file = StringIO(csv_string)
reader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in reader:
    print(row)

您可以尝试的另一件事是将lineterminator参数更改为csv.reader(). 它可以默认为,\r\n但网络表单可能会使用其他值。检查您从 Web 表单中获得的字符串以进行确认。


推荐阅读