[英]Chinese character encoding issue when adding Scrapy for Python items into MYSQL
我正在嘗試將scrapy或MYSQL無法從python scrapy的中文文本抓取到MYSQL數據庫中,但是使用我當前的方法似乎無法處理中文字符。
def insert_table(datas):
sql = "INSERT INTO %s (name, uses, time_capt) \
values('%s', '%s', NOW())" % (SQL_TABLE,
escape_string(datas['name']),
escape_string(datas['uses']),
)
if cursor.execute(sql):
print "Inserted"
else:
print "Something wrong"
添加到MYSQL數據庫時,我不斷收到此錯誤:
exceptions.UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-7: ordinal not in range(128)
datas['name']
包含格式正確的漢字。 如果我在代碼中打印該變量,它會正確顯示。 在將.encode['utf8']
添加到MYSQL之前,我曾嘗試添加它。這使錯誤消失了,但是這使它在數據庫中顯示為亂碼。 難道我做錯了什么?
編輯,這是我當前的代碼:
15 def insert_table(datas):
16 sql = "INSERT INTO %s (name, uses, time_capt) \
17 values(%s, %s, NOW())", (SQL_TABLE,
18 escape_string(datas['name']),
19 escape_string(datas['uses']),
20 )
21 if cursor.execute(sql):
22 print "Inserted"
23 else:
24 print "Something wrong"
當我使用name = u"大學"
作為“ scrapy”項目中的變量時,遇到了類似的問題。 在添加注釋-*- coding: utf-8 -*-
錯誤消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.