【问题标题】:Error message : Http not defined / API import Python错误消息:未定义 Http / API 导入 Python
【发布时间】:2021-04-11 03:27:37
【问题描述】:

我正在尝试导入 Json API 的 URL,但收到错误消息:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-18-5f40dac6d9a4> in <module>
      1 # get data from the API
      2 url = 'https://admin.appnext.com/offerApi.aspx?pimg=1&city=1&ua=1&id=5da11d20-0a32-4852-8233-39b711a360a9'
----> 3 r = http.request('GET', url)
      4 r.status

NameError: name 'http' is not defined

我使用的代码如下:

#  data retrieval
import urllib3
from urllib3 import request
# json data
import json
# pandas dataframes
import pandas as pd

没有问题要导入

# get data from the API
url = 'https://admin.appnext.com/offerApi.aspx?pimg=1&city=1&ua=1&id=5da11d20-0a32-4852-8233-39b711a360a9'
r = http.request('GET', url)
r.status

有人知道可能是什么问题吗?

提前致谢

【问题讨论】:

    标签: python json pandas api


    【解决方案1】:

    您没有在显示的代码中的任何地方定义变量 http。您首先需要从连接池管理器中实例化一个新请求,然后您才能执行该请求:

    #  data retrieval
    import urllib3
    from urllib3 import request
    # json data
    import json
    # pandas dataframes
    import pandas as pd
    
    # get data from the API
    http = urllib3.PoolManager()
    url = 'https://admin.appnext.com/offerApi.aspx?pimg=1&city=1&ua=1&id=5da11d20-0a32-4852-8233-39b711a360a9'
    r = http.request('GET', url)
    r.status
    

    供参考:https://urllib3.readthedocs.io/en/latest/

    【讨论】:

      【解决方案2】:

      HTTP 未在您的代码中定义,因此您不能使用它。我建议您查看 W3Schools 指南中关于 python 中“请求”模块的内容,并查看他们关于如何执行请求的示例:https://www.w3schools.com/python/module_requests.asp

      然后您可以像这样执行请求:

      #  data retrieval
      import requests
      # json data
      import json
      # pandas dataframes
      import pandas as pd
      
      url = 'https://admin.appnext.com/offerApi.aspx?pimg=1&city=1&ua=1&id=5da11d20-0a32-4852-8233-39b711a360a9'
      r = requests.get(url)
      print(r.status)
      

      【讨论】:

        【解决方案3】:

        你需要使用urllib.request.urlopen()

        代码如下:

        import urllib.request
        
        url = 'https://admin.appnext.com/offerApi.aspx?pimg=1&city=1&ua=1&id=5da11d20-0a32-4852-8233-39b711a360a9'
        x = urllib.request.urlopen(url)
        print(x.read())
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-05
          • 1970-01-01
          • 2018-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-03
          相关资源
          最近更新 更多