簡體   English   中英

如何用Anaconda(Python 3)中的Spyder解決這個編碼問題?

[英]How to solve this encoding issue in with Spyder in Anaconda (Python 3)?

我正在嘗試運行以下內容:

import json
path = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt' 
records = [json.loads(line) for line in open(path)]

但是我收到以下錯誤:

UnicodeDecodeError:'ascii'編解碼器無法解碼位置6987中的字節0xe2:序數不在范圍內(128)

從互聯網上我發現它應該是因為編碼需要設置為utf-8,但我的問題是它已經在utf-8中了。

sys.getdefaultencoding() 
Out[43]: 'utf-8'

此外,它看起來我的文件是在utf-8,所以我真的很困惑另外,以下代碼工作:

In [15]: path = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt'
In [16]: open(path).readline()

有辦法解決這個問題嗎?

謝謝 !

編輯:

當我在我的控制台中運行代碼時,它可以工作,但是當我在Anaconda提供的Spyder中運行它時( https://www.continuum.io/downloads

你知道什么可能出錯嗎?

文本文件在某處某行包含一些非ascii字符。 在您的設置上,默認文件編碼設置為ascii而不是utf-8,因此請執行以下操作並明確指定文件的編碼:

import json
path = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt' 
records = [json.loads(line.strip()) for line in open(path, encoding="utf-8"))]

(即使默認有效,這樣做也是個好主意)

我嘗試在頂部添加一行來運行此程序:

# -*- coding: utf-8 -*-

它獲取行並顯示輸出(使用u'前綴字符串;在此之后可能需要轉換)。 但是,它沒有像你提到的那樣拋出任何錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM