【问题标题】:Iterator should return strings, not bytes (the file should be opened in text mode)迭代器应该返回字符串,而不是字节(文件应该以文本模式打开)
【发布时间】:2023-01-22 12:05:36
【问题描述】:

这是我的代码..

def import_excel(request):

  if request.method == 'POST':
    person_resource = PersonResource()

    dataset  = Dataset()
    new_person = request.FILES['myfile']
    if not new_person.name.endswith('csv'):
      messages.info(request,'Wrong format')
      return render(request,'upload.html')
    
    imported_data = dataset.load(new_person.read(),format='csv')
    for data in imported_data:
      value = Person(
        data[0],
        data[1],
        data[2]
      )
     value.save()
  return render(request,'upload.html')

将 csv 文件导入数据库时​​出现错误:

迭代器应该返回字符串,而不是字节(文件应该以文本模式打开)

像这样

【问题讨论】:

    标签: python django excel sqlite csv


    【解决方案1】:

    可以按如下方式读取上传文件的数据,问题就解决了。

    new_person = request.FILES['myfile'].read().decode("utf-8")
    

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2018-03-24
      • 2020-05-06
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 2013-04-21
      相关资源
      最近更新 更多