无法使用Python连接简单的国际空间站API

2024-09-19 23:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我执行这段代码是为了连接最常见的api-

    import requests
    response = requests.get("http://api.open-notify.org/iss-now.json")
    print(response.status_code)

但它显示了这个错误-

    runfile('C:/Users/sanchit.joshi/use case of unassigned tickets/Api try 
    out.py', wdir='C:/Users/sanchit.joshi/use case of unassigned tickets')
    Traceback (most recent call last):

    File "<ipython-input-17-39bcdc5917ae>", line 1, in <module>
    runfile('C:/Users/sanchit.joshi/use case of unassigned tickets/Api try 
    out.py', wdir='C:/Users/sanchit.joshi/use case of unassigned tickets')

    File "C:\ProgramData\Anaconda3\lib\site- 
    packages\spyder_kernels\customize\spydercustomize.py", line 668, in 
    runfile
    execfile(filename, namespace)

    File "C:\ProgramData\Anaconda3\lib\site- 
    packages\spyder_kernels\customize\spydercustomize.py", line 108, in 
    execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

    File "C:/Users/sanchit.joshi/use case of unassigned tickets/Api try 
    out.py", line 8, in <module>
    response = requests.get("http://api.open-notify.org/iss-now.json")

    File "C:\ProgramData\Anaconda3\lib\site-packages\requests\api.py", line 
    72, in get
    return request('get', url, params=params, **kwargs)

    File "C:\ProgramData\Anaconda3\lib\site-packages\requests\api.py", line 
    58, in request
    return session.request(method=method, url=url, **kwargs)

    File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", 
    line 512, in request
    resp = self.send(prep, **send_kwargs)

    File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", 
    line 622, in send
    r = adapter.send(request, **kwargs)

    File "C:\ProgramData\Anaconda3\lib\site-packages\requests\adapters.py", 
    line 513, in send
    raise ConnectionError(e, request=request)

    ConnectionError: HTTPConnectionPool(host='api.open-notify.org', 
    port=80): Max retries exceeded with url: /iss-now.json (Caused by 
    NewConnectionError('<urllib3.connection.HTTPConnection object at 
    0x000001E8E5BCBE80>: Failed to establish a new connection: [Errno 11002] 
    getaddrinfo failed'))

我尝试更改最大重试值,但它不起作用。更令人沮丧的是bcz I这是连接到api的最简单的代码。感谢您的帮助。你知道吗


Tags: inpyapirequestlibpackageslinesite
2条回答

你的代码没什么问题,那代码应该可以用。你知道吗

你有代理问题。如果您使用的是windows,则可以通过进入internet explorer中的“设置”菜单,然后依次进入“internet选项”、“连接”、“lan高级设置”和“将url添加到代理例外”来将url添加到代理例外中。这是典型的在企业环境或在你的学校的管理员把你背后的代理。你知道吗

或者可以使用this Q/A在请求中设置代理

使用JSONurllib.request

import json
import urllib.request

file = urllib.request.urlopen("http://api.open-notify.org/iss-now.json")
data = json.loads(file.read())
print(data)

导致

{'message': 'success', 'timestamp': 1541059187, 'iss_position': {'longitude': '13.6813', 'latitude': '47.8641'}}

相关问题 更多 >