【问题标题】:python-django file upload 'key error'python-django文件上传'关键错误'
【发布时间】:2014-07-12 05:54:04
【问题描述】:

我正在使用 python 3.2 和 django 1.6。我想上传以上传“csv”文件并读取数据以便将其插入数据库(postgresql)。这是我的代码
模板

<form id = "ListForm" name = "ListForm" action = "" method = 'POST' enctype="multipart/form-data">
<table>
<tr>
<td>PM List</td>
<td><input type="file" name="file_pm" id="file_pm" ></td>
</tr>   
<tr><td><input type="submit" value="Upload" name="pmUpload" id="pmUpload" class="button"></td></tr>       
</table>
</form>  

Python 代码是:

import cgi
def pmUpload(request):
    form = cgi.FieldStorage()
    fileitem = form["file_pm"]  

我在上面的python代码的最后一行得到了'KeyError'。我试图一个一个地读取数据。

而完整的回溯错误是

Environment:


Request Method: POST
Request URL: http://MYURL/cc/pmList/

Django Version: 1.6.5
Python Version: 3.2.3
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'ccApp')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware')


Traceback:
File "/home/env/ccENV/lib/python3.2/site-packages/django/core/handlers/base.py" in get_response
  112.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/env/ccENV/lib/python3.2/site-packages/django/views/decorators/csrf.py" in wrapped_view
  57.         return view_func(*args, **kwargs)
File "/home/env/ccENV/lib/python3.2/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  22.                 return view_func(request, *args, **kwargs)
File "/home/env/cccENV/ccc/ccApp/pmList.py" in pmUpload
  19.       fileitem = form["file_pm"]
File "/usr/lib/python3.2/cgi.py" in __getitem__
  575.             raise KeyError(key)

Exception Type: KeyError at /cc/pmList/
Exception Value: 'file_pm'  

如何从上传的文件(data.csv)中读取python 3.2中的数据

【问题讨论】:

  • 错误从何而来? (我们需要查看错误和完整的回溯)
  • 我已经编辑了我的问题..

标签: python django postgresql python-3.2 django-1.6


【解决方案1】:

文件应该在request.FILES['file_pm']

【讨论】:

  • 你知道如何从上传的 csv 文件中读取每一列吗?我尝试了'for'循环,但它得到了这样的一行 b'1566|PR/1869|LSR|710|2013-05-20|3|GP2|PC/3850\n'
  • 我推荐使用the csv module
猜你喜欢
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 2017-03-23
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-13
  • 2013-03-13
相关资源
最近更新 更多