打印字符「\ u2019」作爲一個項目來幫助我學習Python,我使用JSON數據(例如www.reddit.com/all/製作書籤交易的CMD觀衆以.json)。當某些帖子出現並嘗試打印它們時(我認爲這是導致錯誤的原因),我得到此錯誤:無法在Python從JSON對象
回溯(最近呼叫最後一次): 文件「C:\ Users \ nsaba \ Desktop \ reddit_viewer.py」,線路33,在 打印( 「%d。(%d)%S \ n」 個%(I + 1,OBJ [ '數據'] [ '得分'],OBJ [ '數據'] [ '標題']))
文件 「C:\ Python33 \ lib中\編碼\ cp437.py」,第19行,在編碼 返回codecs.charmap_encode(輸入,self.errors,encoding_map)[0] UnicodeEncodeError:「字符表」編解碼器不能在 位置32編碼字符「\ u2019」:字符映射到
這裏是我處理的數據:
request = urllib.request.urlopen(url)
content = request.read().decode('utf-8')
jstuff = json.loads(content)
我用它來打印數據在上面的錯誤中列出的線路:
print ("%d. (%d) %s\n" % (i+1, obj['data']['score'], obj['data']['title']))
任何人都可以提出,我可能會去錯了嗎?
這個問題幾乎肯定與JSON或代碼中的其他內容無關。試試'print('\ u2019')'看看你是否得到相同的錯誤。如果是這樣,問題是您的終端(「DOS盒」)沒有設置爲正確輸出Unicode輸出,這就是您需要修復的問題。 – abarnert
是的,你是對的。額外數據的原因是因爲我已經學會根據我擁有的信息提出問題,而不是關於我認爲可能的問題。 –
但是,您應該發佈演示您的問題的最小完整示例。這就是[SSCCE](http://sscce.org)的全部內容。如果'print('\ u2019')'足以證明這一點,那麼更復雜的例子就是引導人們追逐雁蕩。如果你擔心人們可能會問「你爲什麼要打印那個角色?」,那麼你可以添加解釋它的上下文......但仍然會導致實際問題。 – abarnert