json.load()函数给出奇怪的'UnicodeDecodeError:'ascii'编解码器无法解码'错误

时间:2016-01-28 02:34:08

标签: python json file api parsing

我正在尝试使用python .loads()函数读取我保存在文本文件中的JSON文件。我稍后将解析JSON以获取特定值。

我一直收到此错误消息。当我谷歌时,没有结果。

  

UnicodeDecodeError:'ascii'编解码器无法解码位置中的字节0xc2> 85298:序号不在范围内(128)

以下是完整的错误消息:

  

回溯(最近一次调用最后一次):文件“... / 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(),File>”/ Library / Frameworks / Python中。 framework / Versions / 3.5 / lib / python3.5 / encodings> /ascii.py“,第26行,在decode中返回codecs.ascii_decode(输入,> self.errors)[0] UnicodeDecodeError:'ascii'编解码器不能在位置85298中解码字节0xc2>:序数不在范围(128)

这是我的代码:

import json
from pprint import pprint

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

pprint(data)

我尝试在data.decode('utf-8')下添加json.load,但我仍然遇到同样的错误。

任何想法可能是什么问题?

1 个答案:

答案 0 :(得分:25)

open来电中指定编码。

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