我正在研究一個代碼,它根據搜索詞從Twitter獲取實時tweets並將其保存到Mysql數據庫。但是,當我運行的代碼,而插入到數據庫它提出了一個錯誤:UnicodeDecodeError:'ascii'編解碼器無法解碼位置139中的字節0xe2:序號不在範圍內(128)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 139: ordinal not in range(128)
我不明白有什麼問題就在這裏是代碼插入到數據庫
tweet = json.loads(data);
#print json.dumps(tweet, indent=4, sort_keys=True)
#print tweet['text']
tweetid = tweet['id_str']
userid = tweet['user']['id_str']
text = tweet['text'].encode('utf-8')
cur.execute("""INSERT INTO twitterfeeeds(tweet_id, user_id,body,status) VALUES (%s,%s,%s,'0')"""%(tweetid,userid,text))
db.commit()
這裏的身體是在鳴叫文本狀態是它是否被處理。
鳴叫時不進行編碼,它提出了另一個錯誤 UnicodeEncodeError:「拉丁-1 '編解碼器不能在位置234對字符u'\ u2026'進行編碼:序號不在範圍內(256) – Harwee
@Harwee:不作爲查詢參數傳遞時。 –
@Harwee:您確實需要將數據庫配置爲接受UTF-8 Unicode文本,目前您的數據庫只能處理Latin-1。 –