Python 尝试添加ascii文本
有一个包含数据的csv文件。请仔细分析Python 尝试添加ascii文本,python,django,Python,Django,有一个包含数据的csv文件。请仔细分析 file_reader = csv.reader(f, delimiter=';') for row in file_reader: data = UserDataCsv() data.user = files.user data.file_hash = request.FILES['file'] data.file = UserFiles.objects.get(id
file_reader = csv.reader(f, delimiter=';')
for row in file_reader:
data = UserDataCsv()
data.user = files.user
data.file_hash = request.FILES['file']
data.file = UserFiles.objects.get(id=file_id)
print(row[0])
data.material = row[0]
但当我尝试添加新行时出错
第42行,在内部
响应=获取响应(请求)
文件“C:\Python27\lib\site packages\django\core\handlers\base.py”,第187行,在\u get\u响应中
response=self.process\u异常\u由\u中间件(e,请求)
文件“C:\Python27\lib\site packages\django\core\handlers\base.py”,第185行,在\u get\u响应中
响应=包装的回调(请求,*回调参数,**回调参数)
上传文件第112行的文件“D:\PythoProjecs\csv\u files\users\user\u functions.py”
data.save()
文件“C:\Python27\lib\site packages\django\db\models\base.py”,第796行,保存
强制更新=强制更新,更新字段=更新字段)
文件“C:\Python27\lib\site packages\django\db\models\base.py”,第824行,在save\u base中
更新=自我。保存表格(原始、cls、强制插入、强制更新、使用、更新字段)
文件“C:\Python27\lib\site packages\django\db\models\base.py”,第908行,在保存表中
结果=self.\u do\u insert(cls.\u base\u manager,using,fields,update\u pk,raw)
文件“C:\Python27\lib\site packages\django\db\models\base.py”,第947行,插入
使用=使用,原始=原始)
文件“C:\Python27\lib\site packages\django\db\models\manager.py”,第85行,在manager\u方法中
返回getattr(self.get_queryset(),name)(*args,**kwargs)
文件“C:\Python27\lib\site packages\django\db\models\query.py”,第1045行,插入
return query.get\u编译器(using=using).execute\u sql(return\u id)
文件“C:\Python27\lib\site packages\django\db\models\sql\compiler.py”,第行
1054,在execute_sql中
cursor.execute(sql,params)
文件“C:\Python27\lib\site packages\django\db\backends\utils.py”,执行中的第79行
返回super(CursorDebugWrapper,self).execute(sql,params)
文件“C:\Python27\lib\site packages\django\db\backends\utils.py”,执行中的第64行
返回self.cursor.execute(sql,params)
文件“C:\Python27\lib\site packages\django\db\utils.py”,第94行,在退出中
6.重新播放(dj_exc_类型、dj_exc_值、回溯)
文件“C:\Python27\lib\site packages\django\db\backends\utils.py”,执行中的第64行
返回self.cursor.execute(sql,params)
文件“C:\Python27\lib\site packages\django\db\backends\mysql\base.py”,第行
110,执行中
返回self.cursor.execute(查询,参数)
文件“C:\Python27\lib\site packages\MySQLdb\cursors.py”,第205行,在execute中
errorhandler(self、exc、value)
文件“C:\Python27\lib\site packages\MySQLdb\connections.py”,第36行,在defaulterrorhandler raise errorclass中,
errorvalueOperationalError:(1366,“不正确的字符串值:
第1行“材料”栏的“\xC4\xD1\xCF””[2017年6月30日
16:34:32]“POST/upload_file/HTTP/1.1”500 17454
我如何解决这个问题?您是否正在尝试通过django ORM向DB添加一行?你能给我们看一下请求吗?表的字符集是什么?检查这个答案users\u userdatacsv InnoDB utf8\u general\u ci 48do
e=row[0]。解码(“utf-8”)在解码返回编解码器中打印(e)
。utf\u 8\u解码(输入,错误,真)UnicodeDecodeError:“utf8”编解码器无法解码位置0处的字节0xc4:无效的继续字节[30/Jun/2017 17:19:49]“发布/上传文件/HTTP/1.1”500 15507
Internal Server Error: /upload_file/
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\django\core\handlers\exception.py",