我有一个破烂的代码,抓取一个网站并写入MySQL
import MySQLdb.cursors
def __init__(self,stats):
self.dbpool = adbapi.ConnectionPool(<dbnam>,host=<host>,user=<user>,port=<port>,passwd=<pwd>, db=<dbname>, cursorclass=MySQLdb.cursors.DictCursor, charset='utf8', use_unicode=True)
def process_item(self, item, spider):
query = self.dbpool.runInteraction(self._conditional_insert, item)
query.addErrback(self.handle_error)
表中数字列表的废脚本
^{pr2}$我正在抓取以下内容:10〃11〃12〃等。我的代码返回以下内容:
'numbers': [u'10\u2033', u'11\u2033', u'12\u2033'],
将它插入MySQL数据库会抛出一条错误消息-我猜是由于unicode问题。在
tx.execute("""INSERT INTO numbers ('{0}').format(", ".join(item['numbers'])))
请你帮忙使插入成功。更好的是,如何从列表中删除特殊字符'\u2033'?在
提前谢谢!在
您可能得到了一个
UnicodeEncodeError
,因为您试图将包含非ascii字符的unicode字符串插入字节字符串。在要解决此问题,请确保查询字符串具有
u
前缀:如果你真的想摆脱那些双撇号,我想你可以用双引号代替它们:
^{pr2}$但我认为最好确保代码可以处理任何unicode字符,也就是说,您应该始终在程序中使用unicode字符串。在
相关问题 更多 >
编程相关推荐