json.load()函数给予奇怪“UnicodeDecodeError:“asphalt”编解码器无法解码“错误

yptwkmov  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(80)

我正在尝试使用python .loads()函数读取保存在文本文件中的JSON文件。我稍后将解析JSON以获取特定值。
我一直收到这个错误消息。当我谷歌它,没有结果。
Unicode解码错误:“asphalt”编解码器无法解码位置> 85298中的字节0xc 2:序号不在范围内(128)
以下是完整的错误消息:
回溯(最近的呼叫最后一次):File“.../FirstDegreeKanyeScript.py“,>line 10,in data=json.load(data_file)File >"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/in>it.py”,line 265,in load return loads(fp.read(),File >"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/encodings>/ascii.py“,line 26,in decode return codecs. asphp_decode(input,>self.errors)[0] UnicodeDecodeError:“asphalt”编解码器无法解码位置85298中的字节0xc 2>:序号不在范围内(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'),但仍然得到相同的错误。
有什么想法吗?

46scxncf

46scxncf1#

open调用中指定编码。

# encoding is a keyword argument
open("/Users/.../KanyeAllSongs.txt", encoding='utf-8') as data_file:
    data=json.load(data_file)
2cmtqfgy

2cmtqfgy2#

在谷歌上找到的在我的情况下,所有结束了:

open("/Users/.../KanyeAllSongs.txt", "rb") as data_file:
   data=json.load(data_file)

我添加了rb以二进制模式打开文件。

相关问题