- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 scrapy 从网站中提取数据。我正在使用 MysqlDB 将数据保存到 mysql 数据库中。该脚本适用于英文网站,但当我在瑞典网站上尝试时,我得到:
self.db.query(insertion_query)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 156:
ordinal not in range(128)
我在抓取过程中涉及的每个文件的顶部放置了以下行以指示国际字符的使用: # -- 编码:utf-8 --
但是我仍然得到一个错误。 python 接受非英语字符还需要什么?这是完整的堆栈跟踪:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\scrapy-0.14.3-py2.7-win32.egg\scrapy\middleware.py",
line 60, in _process_
chain
return process_chain(self.methods[methodname], obj, *args)
File "C:\Python27\lib\site-packages\scrapy-0.14.3-py2.7-win32.egg\scrapy\utils\defer.py",
line 65, in process_
chain
d.callback(input)
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 368, in callback
self._startRunCallbacks(result)
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 464, in
_startRunCallbacks
self._runCallbacks()
--- <exception caught here> ---
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 551, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "C:\Python27\tco\tco\pipelines.py", line 64, in process_item
self.db.query(insertion_query)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 156:
ordinal not in range(128)
最佳答案
这个 unicode 问题乍看起来很困惑,但实际上很简单。
# -- coding: utf-8 --
如果你在你的源代码之上写这个,这意味着,python 将将您的代码视为 utf-8,而不是传入或传出数据。
您显然想将一些数据写入您的数据库,但出现了这个错误当您的某些模块将您的 utf-8 字符串(我猜是瑞典语)编码为 ascii 时。
这意味着,要么 MySQL 被设置为 ascii,要么你的 mysql 数据库驱动程序被设置为 ascii。
所以我建议去检查你的 mysql 设置或驱动程序设置。
db = MySQLdb.connect(host=database_host ,user=user ,passwd=pass,db=database_name, charset = "utf8", use_unicode = True)
这将使您的 mysql 驱动程序使用 utf8 连接到 mysql 服务器
关于瑞典字符的 Python 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10579620/
我想知道如何通过 JavaScript 解决这个问题,我正在尝试将 id="needs-confirm-sweden"的复选框字段设为必需,只要将“Sweden”一词插入到输入国家字段。关于如何实现这
我的正则表达式有问题。我已经可以验证正确的瑞典社会安全号码以符合这些标准。 YYMMDDNNNN YYMMDD-NNNN YYYYMMDDNNNN YYYYMMDD-NNNN 但如果用户未满 18 岁
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是 PHP 的新手,我正在开发一个非常小的项目来可视化从我们的自动车牌阅读器 (Openalpr) 到我们的叉车的车牌,以显示已到达装载区(区域 2)的货车 一切都在 Ubuntu 16.04.1
我有这个 View 源代码,它是在一台装有 SQL Server 2012 和 Latin1 服务器和数据库整理的机器上编写的: SELECT TOP 100 PERCENT W.Abteilun
我是一名优秀的程序员,十分优秀!