【问题标题】:Cannot read csv files uploaded using pandas in Djnago无法读取在 Django 中使用 pandas 上传的 csv 文件
【发布时间】:2020-11-10 04:00:34
【问题描述】:

我在我的 Django 视图中定义了以下视图:-

def csv_file_upload(request):
    if request.method == "POST" and request.FILES['file_upload']:
        registry = request.POST.get('reg_select').lower()
        csv_file = request.FILES['file_upload']
        data = pd.read_csv(csv_file, delimiter="\|\|")
        print(data.head())
    return render(request, "csv_file_upload.html", {})

但是 pd.read_csv 部分给了我这个错误:-

cannot use a string pattern on a bytes-like object

我拥有的示例 csv 文件是这样的:

Col_A||Col_B||Col_C
A0||B0||C0
A1||B1||C1

我可以在不使用 Django 的情况下使用 pd.read_csv() 读取相同的文件,并且不会出现此错误。

为什么在使用 Django 时会出现这个错误?

【问题讨论】:

    标签: django pandas


    【解决方案1】:

    文件以字节而不是字符串的形式上传(预期)

    您应该读取文件并将其内容解码为字符串

    csv_bytes = request.FILES['file_upload'].read()
    csv_text = csv_bytes.decode('utf-8')
    string_buffer =  io.StringIO(csv_text)
    data = pd.read_csv(string_buffer , delimiter="\|\|")
    

    【讨论】:

      猜你喜欢
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 2014-09-02
      • 2021-11-30
      • 2020-02-09
      • 1970-01-01
      相关资源
      最近更新 更多