错误消息:未定义 Http / API 导入 Python
Posted
技术标签:
【中文标题】错误消息:未定义 Http / API 导入 Python【英文标题】:Error message : Http not defined / API import 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
有人知道可能是什么问题吗?
提前致谢
【问题讨论】:
【参考方案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())
【讨论】:
以上是关于错误消息:未定义 Http / API 导入 Python的主要内容,如果未能解决你的问题,请参考以下文章
当 API 中未发送必填字段值时,如何在 swagger 中自定义错误消息?
angular7 ag-grid this.http 是未定义的错误
Workday Studio - 向供应商 API 发出 HTTP 请求接收错误:未定义名为“http-token-auth”的 bean