- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题,我可以将 CSV 文件上传到 MySQL,但随后发生了一些事情,我得到了一个编码错误。有人可以检查我的代码并告诉我哪里出了问题吗?我是新手。
以下代码段是我编写将要上传的 CSV 文件的方式,数据是使用 MDN 工具 (mdb-export) 从 MDB 文件中提取的:
tableIndex = 1
for tName in tableNames:
fileName = os.path.join(csvPath, os.path.basename(mdb).split('.')[0] + '_' + tName + '.csv')
try:
p = subprocess.Popen(["mdb-export", "-H", mdb, tName], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
tableContent, error = p.communicate()
if(p.returncode != 0):
_logger.error('[%3d] Export Subprocess %d %s' % (tID, p.returncode, tableContent))
SendMdbError(tID, mdb, _logger, 'ALERT: Export Subprocess')
return(['', False])
if(error):
_logger.error('[%3d] Export Communicate %d %s' % (tID, p.returncode, error.strip()))
SendMdbError(tID, mdb, _logger, 'ALERT: Export Communicate')
return(['', False])
except Exception as ex:
_logger.exception('[%3d] Export Error' % tID)
SendMdbError(tID, mdb, _logger, 'ALERT: Export Exception')
return(['', False])
except:
_logger.exception('[%3d] Export Unexpected' % tID)
SendMdbError(tID, mdb, _logger, 'ALERT: Export Unexpected')
return(['', False])
# If no data, no need for corresponding SQL
if(len(tableContent) == 0):
emptyTables.append(tName)
# If data exists, dump data
else:
# Add the 'DriveTest' to the data to upload
tableContent = tableContent.split('\n')
tableContent = [dt + ',' + line for line in tableContent if(line)]
tableContent = '\n'.join(tableContent)
try:
with open(fileName, 'wb') as f:
f.write(tableContent)
if(_VERBOSITY):
_logger.debug('[%3d] %3d - Write CSV SIZE[%8d] FILE: %s' %(tID, tableIndex, len(tableContent.split('\n')), fileName))
tableIndex += 1
except IOError as err:
_logger.exception('[%3d] Write IOError: %s' % (tID, str(err)))
SendMdbError(tID, mdb, _logger, 'ALERT: Write IOError')
return(['', False])
except Exception as ex:
_logger.exception('[%3d] Write Exception' % tID)
SendMdbError(tID, mdb, _logger, 'ALERT: Write Exception')
return(['', False])
except:
_logger.exception('[%3d] Write Unexpected: %s' % tID)
SendMdbError(tID, mdb, _logger, 'ALERT: Write Unexpected')
return(['', False])
下面是我上传CSV文件的地方,这里是我得到错误的地方:
# Upload the data
tableIndex = 0
for table in tableDDL:
try:
with warnings.catch_warnings(record=True) as war:
_logger.info('[%3d] %3d Going up... %s' %(tID, tableIndex+1, os.path.basename(mdb).split('.')[0] + '_' + table))
_sqlLock[tableIndex].acquire()
#self.cursor.execute(tableDDL[table])
self.cursor.execute(tableULD[table])
self.conn.commit()
_sqlLock[tableIndex].release()
if(war):
#if(_VERBOSITY): print('[%3d] %3d WARNINGS[%3d] %s' % (tID, tableIndex+1, len(war), os.path.basename(mdb).split('.')[0] + '_' + table))
_logger.warning('[%3d] %3d WARNINGS[%3d] %s' % (tID, tableIndex+1, len(war), os.path.basename(mdb).split('.')[0] + '_' + table))
for w in war:
_logger.warning('[%3d] %s' % (tID, w.message))
#if(_VERBOSITY): print('[%3d] %3d Uploaded %s' % (tID, tableIndex+1, os.path.basename(mdb).split('.')[0] + '_' + table))
_logger.info('[%3d] %3d Uploaded %s' % (tID, tableIndex+1, os.path.basename(mdb).split('.')[0] + '_' + table))
tableIndex += 1
# Remove the uploaded CSV file
try:
os.remove(csvFiles[table]+'.csv')
_logger.info('[%3d] Removed CVS file: %s' % (tID, csvFiles[table]+'.csv'))
except OSError:
pass
except (MySQLdb.InternalError, MySQLdb.NotSupportedError) as err:
_logger.error('[%3d] %3d Internal: %s %s' % (tID, tableIndex+1, err, sys.exc_info()[0]))
self.conn.rollback()
self.Disconnect(tID, _logger, _VERBOSITY, _DEBUG)
return(False)
except MySQLdb.OperationalError as err:
_logger.error('[%3d] %3d OperationalError: %s' % (tID, tableIndex+1, sys.exc_info()[0]))
_logger.error(err)
self.conn.rollback()
self.Disconnect(tID, _logger, _VERBOSITY, _DEBUG)
return(False)
except MySQLdb.ProgrammingError as err:
_logger.error('[%3d] %3d ProgrammingError: %s' % (tID, tableIndex+1, sys.exc_info()[0]))
_logger.error(err)
self.conn.rollback()
self.Disconnect(tID, _logger, _VERBOSITY, _DEBUG)
return(False)
except MySQLdb.Error as err:
_logger.error('[%3d] %3d QUERY: %s %s' % (tID, tableIndex+1, err, sys.exc_info()[0]))
self.conn.rollback()
self.Disconnect(tID, _logger, _VERBOSITY, _DEBUG)
return(False)
except Exception as err:
_logger.error('[%3d] %3d Exception: %s %s' % (tID, tableIndex+1, err, sys.exc_info()[0]))
#self.conn.rollback()
#self.Disconnect(tID, _logger, _VERBOSITY, _DEBUG)
#return(False)
pass
except:
_logger.error('[%3d] %3d Other: %s' % (tID, tableIndex+1, sys.exc_info()[0]))
self.conn.rollback()
self.Disconnect(tID, _logger, _VERBOSITY, _DEBUG)
return(False)
我得到的错误如下:
2015-06-13 19:42:21,743 __main__ - ERROR - [ 1] 1 Exception: 'ascii' codec can't encode character u'\xb4' in position 40: ordinal not in range(128) <type 'exceptions.UnicodeEncodeError'>
2015-06-13 19:42:30,962 __main__ - ERROR - [ 1] 1 Exception: 'ascii' codec can't encode character u'\xb4' in position 27: ordinal not in range(128) <type 'exceptions.UnicodeEncodeError'>
我注意到给定的数据已上传,但不确定是否所有行都已上传。
谢谢!
最佳答案
在将 csv 放入 DB s.decode('UTF-8')
之前以及从 DB s.encode('UTF-8')
中尝试>
我为 SQLite 做了它并且工作正常。
关于Python MySQLdb上传UnicodeEncodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30825662/
我不确定为什么会收到此错误: Exception Type: UnicodeEncodeError Unicode error hint The string that could not be en
我正在使用python-twiter使用 Twitter 的 API 搜索推文,但我遇到中文术语问题。这是重现该问题的最小代码示例: # -*- coding: utf-8 -*- import tw
我正在尝试使用 Twitter API 和 Python 来浏览 Twitter BIOS。 但是我收到此错误: newFile.writerow(info) UnicodeEncodeError:
我正在使用 Requests 和 BeautifulSoup 以及 Python 3.4 从网站上抓取可能包含也可能不包含日语或其他特殊字符的信息。 def startThisPage(url):
我有一个这样的记录器设置: import logging from logging.handlers import RotatingFileHandler import sys # root logg
我有一个 Python 抓取器,它抓取一个网站并将数据插入 MySql 数据库。突然间我得到了一个错误 UnicodeEncodeError: 'latin-1' codec can't encode
此代码应将一些文本写入文件。当我尝试将文本写入控制台时,一切正常。但是当我尝试将文本写入文件时,出现 UnicodeEncodeError。我知道,这是一个常见问题,可以使用适当的解码或编码来解决,但
我正在从事一个涉及自动生成文档(通过 latex )的项目。创建这些文档的人在 Windows 机器上工作(他以前使用 Microsoft word,但现在他在记事本中编辑它们)。无论如何,我注意到有
当我尝试在 UTF-8 字符串中查找单词的计数时,我得到了下一个: UnicodeEncodeError UnicodeEncodeError: 'ascii' codec can't encode
我在尝试将 UTF-8 字符串转换为 unicode 时遇到问题。我收到错误。 UnicodeEncodeError: 'ascii' codec can't encode characters in
我正在尝试用 Python 和 BeautifulSoup 解析这个文档: http://en.wikipedia.org/w/api.php?format=xml&action=opensearch
我正在尝试使用简单的 python print 语句。 print('这是') 但我遇到了这些问题。 我正在使用Windows。原子IDE。 python 3.6.5问候,巴努。 最佳答案 将 # -
无论我尝试什么解码和编码,我似乎都无法让它工作。我目前收到错误: UnicodeEncodeError: 'ascii' 编解码器无法对字符 u'\u2013' 进行编码 但是如果我要添加解码和编码,
这个问题已经有答案了: Python: Unicode and ElementTree.parse (3 个回答) 已关闭 7 年前。 在我的 Django 应用程序中,我使用 suds 库发出了肥皂
我正在尝试从 rockyou 单词列表中读取内容并将所有 >= 8 个字符的单词写入新文件。 这是代码 - def main(): with open("rockyou.txt", encod
我正在使用“pdfminer.six”(一个 Python 库)从我拥有的几个 PDF 中提取所有文本。我的方法工作完美,但对于某些 pdf,可能有一些特殊字符,当我将其写入文本文件时,我收到“Uni
我在生产系统中遇到错误,但我无法在开发环境中重现该错误: with io.open(file_name, 'wt') as fd: fd.write(data) 异常(exception):
当运行从标准输入读取的 Python 程序时,出现以下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
它在执行以下代码时抛出“UnicodeDecodeError:‘ascii’编解码器无法解码位置 2 中的字节 0xc2:序号不在范围内(128)”: filename = 'Spywaj.ttf'
我有一个 python 脚本,在我的本地机器 (OS X) 上运行良好,但是当我将它复制到服务器 (Debian) 时,它无法按预期运行。该脚本读取 xml 文件并以新格式打印内容。在我的本地机器上,
我是一名优秀的程序员,十分优秀!