Python Json 错误 : ValueError: No JSON object could be decoded

标签 python json

我在执行此脚本时遇到错误,无法弄清楚。

错误:

Traceback (most recent call last):
  File "./upload.py", line 227, in <module>
    postImage()
  File "./upload.py", line 152, in postImage
    reddit = RedditConnection(redditUsername, redditPassword)
  File "./upload.py", line 68, in __init__
    self.modhash = r.json()['json']['data']['modhash']
  File "/usr/lib/python2.6/site-packages/requests/models.py", line 799, in json
    return json.loads(self.text, **kwargs)
  File "/usr/lib/python2.6/site-packages/simplejson/__init__.py", line 307, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.6/site-packages/simplejson/decoder.py", line 335, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.6/site-packages/simplejson/decoder.py", line 353, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

最佳答案

你得到这个异常是因为你在这里使用了错误的 json 函数:

def getNumberOfFailures(path):
try:
    with open(path + '.failurecount') as f:
        return json.loads(f.read())
except:
    return 0

您需要这样做:

def getNumberOfFailures(path):
    try:
        with open(path + '.failurecount') as f:
            return json.load(f)
    except:
        return 0

json.loads() 用于 json 字符串。 json.load() 用于 json 文件对象。

正如一些人提到的,您需要重新发布一个新的 API key 并删除您在代码中发布的 key 。其他人可以并且将会滥用这些 key 以您的名义在 Reddit 上发送垃圾邮件。

关于Python Json 错误 : ValueError: No JSON object could be decoded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881858/

相关文章:

javascript - 如何从 json 对象构建 id 字符串

javascript - 如何对 Steam 市场 JSON 数据进行排序

python - 将数据框列从对象转换为日期而不是日期时间

Python 多处理。池和内存

python将未知字符转换为ascii

javascript - 从 D3 中的 JSON 获取最大值

Python 子进程安全

python - python套接字地址信息输出的含义

json - 从 Redshift 表中获取 JSON 数据

json - Play Framework 2.3 (Scala) 中的自定义 JSON 验证约束