You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python requests获取ISS位置时遭遇JSONDecodeError错误求助

ISS位置API请求JSON解码错误排查

问题描述

我尝试获取国际空间站(International Space Station, ISS)的当前位置并以JSON格式展示,代码如下:

import requests

sample = requests.get(url="http://open-notify.org/Open-Notify-API/ISS-Location-Now/")

conv= sample.json()
print(conv)

预期返回ISS当前位置的JSON数据,但却持续出现如下错误:

Traceback (most recent call last):
  File "C:\Users\Guest\PycharmProjects\Api\main.py", line 7, in <module>
    conv = sample.json()
           ^^^^^^^^^^^^^
  File "C:\Users\Guest\AppData\Local\Programs\Python\Python312\Lib\site-packages\requests\models.py", line 975, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

错误原因及解决方法

核心原因

你使用的URL是API的说明网页地址,而非实际提供数据的接口地址。该网页返回的是HTML内容,并非JSON格式,因此调用json()方法会触发解码失败。

解决步骤

  1. 替换为正确的API接口地址
    ISS当前位置的有效API端点是https://api.open-notify.org/iss-now.json,修改代码后即可正常获取JSON数据:
import requests

sample = requests.get(url="https://api.open-notify.org/iss-now.json")
conv = sample.json()
print(conv)
  1. 调试小技巧
    后续遇到类似问题时,可先打印响应状态码和原始内容,快速定位问题:
import requests

sample = requests.get(url="https://api.open-notify.org/iss-now.json")
print("状态码:", sample.status_code)
print("原始响应内容:", sample.text)

if sample.status_code == 200:
    conv = sample.json()
    print("解析后的JSON数据:", conv)
else:
    print("请求失败,状态码:", sample.status_code)

内容的提问来源于stack exchange,提问作者Stephen Okyere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:32:11