json.load() 函数给出奇怪的 'UnicodeDecodeError: 'ascii' codec can't decode' 错误
Posted
技术标签:
【中文标题】json.load() 函数给出奇怪的 \'UnicodeDecodeError: \'ascii\' codec can\'t decode\' 错误【英文标题】:json.load() function give strange 'UnicodeDecodeError: 'ascii' codec can't decode' errorjson.load() 函数给出奇怪的 'UnicodeDecodeError: 'ascii' codec can't decode' 错误 【发布时间】:2016-05-05 06:15:30 【问题描述】:我正在尝试使用 python .loads() 函数读取我保存在文本文件中的 JSON 文件。稍后我将解析 JSON 以获得特定值。
我不断收到此错误消息。 google了一下,没有结果。
UnicodeDecodeError:“ascii”编解码器无法解码位置 >85298 中的字节 0xc2:序数不在范围内 (128)
这是完整的错误信息:
Traceback(最近一次调用最后一次):文件“.../FirstDegreeKanyeScript.py”,>第 10 行,在 data=json.load(data_file) 文件中 >"/Library/Frameworks/Python.framework/Versions/3.5 /lib/python3.5/json/in>it.py",第 265 行,在加载返回加载(fp.read(),文件 >"/Library/Frameworks/Python.framework/Versions /3.5/lib/python3.5/encodings>/ascii.py", line 26, in decode return codecs.ascii_decode(input, >self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 >在位置 85298:序数不在范围内(128)
这是我的代码:
import json
from pprint import pprint
with
open("/Users/.../KanyeAllSongs.txt") as data_file:
data=json.load(data_file)
pprint(data)
我尝试在json.load
下添加data.decode('utf-8')
,但仍然遇到同样的错误。
任何想法可能是什么问题?
【问题讨论】:
你用的是哪个版本的python?文件采用哪种编码方式? 【参考方案1】:在open
调用中指定编码。
# encoding is a keyword argument
open("/Users/.../KanyeAllSongs.txt", encoding='utf-8') as data_file:
data=json.load(data_file)
【讨论】:
@Alik i get open('filename.js', encoding='utf-8') as data_file: ^ SyntaxError: invalid syntax @FightFireWithFire - 应尽快更新(等待同行评审:***.com/review/suggested-edits/16132026) 应该有with open(...) as ...
。以上是关于json.load() 函数给出奇怪的 'UnicodeDecodeError: 'ascii' codec can't decode' 错误的主要内容,如果未能解决你的问题,请参考以下文章
python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分
Python中json文件处理的四个函数json.dumps()json.loads()json.dump()和json.load()的区分
python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分
python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分