Skip to main content
 首页 » 编程设计

python之从 Django 网络表单解析 csv 的问题

2024年09月03日29wayfarer

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

这是我的 csv 文件:

这是我的代码:

这是变量 file_readed 的打印值:

正如您在图片中看到的,除了一些异常(exception),它似乎是逐个字符地拆分我的文件。 感谢您能为我提供的任何帮助。

请您参考如下方法:

如果您从 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 表单中获取的字符串以进行确认。