PythonAnywhere 上的 JSONDecodeError

Posted

技术标签:

【中文标题】PythonAnywhere 上的 JSONDecodeError【英文标题】:JSONDecodeError on PythonAnywhere 【发布时间】:2017-10-01 14:36:10 【问题描述】:

我正在尝试在 PythonAnywhere 上部署我的应用程序。一切正常,但是当我调用一个函数时,我的应用程序失败了。

异常类型:JSONDecodeError 异常值:预期值:第 1 行第 1 列(字符 0)

Error Imgur image part 1

Error Imgur image part 2

我一直在阅读另一个答案,但没有人为我工作。问题是这段代码:

        parametros = 'location': lugar, 'API_KEY': api_code
        url = 'http://servizos.meteogalicia.es/apiv3/findPlaces'

        # Enviamos la peticion
        peticion = requests.get(url, parametros)

        # Obtenemos la respuesta
        respuesta = json.loads(peticion.text)

更新 1

同样的错误:

        parametros = 'location': lugar, 'API_KEY': api_code, 'format': 'application/json'
        url = 'http://servizos.meteogalicia.es/apiv3/findPlaces'

        # Enviamos la peticion
        try:
            peticion = requests.get(url, parametros)
        except:
            peticion.raise_for_status()

        # Obtenemos la respuesta
        respuesta = json.loads(peticion.text)

而且 JSON 似乎是有效的:

JSON validation

【问题讨论】:

完全相同的错误@tdelaney 好的,问题似乎是这样的:ibb.co/e5aki5 我不知道为什么当我第一次尝试获得支持时支持没有告诉我...... 你是绝对正确的@halfer,我的错。今晚我将重现错误并上传图片。 可爱,非常感谢。不够感谢,但是一旦您编辑了,请联系我以支持独角兽积分! 已编辑;这种方式好多了。再次感谢@halfer 【参考方案1】:

(代表 OP 发布).

我收到了这条支持消息,所以问题解决了:

啊!对不起,我真的应该先发现这一点。免费用户只能访问具有官方文档 API 的网站白名单上的网站,出于某种原因,我认为该网站已经在白名单上。

我现在会添加它,并在它处于活动状态时通知您。

【讨论】:

【参考方案2】:

问题大概出在这里:

File "./consulta/views.py" in formulario
  32.             respuesta = json.loads(peticion.text)

peticion.text 似乎不是有效的 JSON 字符串。

【讨论】:

尝试在get 调用之后添加peticion.raise_for_status() 以防万一,响应是错误响应(无论如何,您都应该将调用包装在 try 中 - 阻止和处理错误除外)。

以上是关于PythonAnywhere 上的 JSONDecodeError的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Javascript 在 PythonAnywhere 上的 OpenCV 中访问网络摄像头?

连接到 PythonAnywhere SQL Server 的问题

将mysql与pythonanywhere一起使用时出现错误4

有没有办法从脚本访问 PythonAnywhere CPU Allowance?

如何让 South 在 PythonAnywhere 上工作?

在PythonAnyWhere上部署Django项目