尝试调用我的azuremlapi,但urllib有问题。我使用python3+,因此应该使用urllib而不是urllib2,但是对于urllib中会发生什么以及为什么会得到错误消息感到困惑。在
完整脚本:import urllib2
# If you are using Python 3+, import urllib instead of urllib2
import json
data = {
"Inputs": {
"input1":
{
"ColumnNames": ["x", "x", "x"],
"Values": [ ["x", "x", "x"]
}, },
"GlobalParameters": {
}
}
body = str.encode(json.dumps(data))
url = 'https://ussouthcentral.services.azureml.net/workspaces/xxxxxxxxxxxxxxxxxxx/services/xxxxxxxxxxxxxxxxxxxxx/execute?api-version=2.0&details=true'
api_key = 'xxxxxx'
headers = {'Content-Type':'application/json', 'Authorization':('Bearer '+ api_key)}
req = urllib.request.Request(url, body, headers)
try:
response = urllib.request.urlopen(req)
result = response.read()
print(result)
except urllib2.HTTPError, error:
print("The request failed with status code: " + str(error.code))
print(error.info())
print(json.loads(error.read()))
在API的文档中,它说我应该使用urllib.request。
问题似乎出在这条线上,所以我试着改变它:
^{pr2}$
有了这个:except urllib.request.HTTPError, error:
或者用这个:except urllib.HTTPError, error:
但没有效果
我得到的错误消息是:File "", line 37
except urllib2.HTTPError, error:
^
SyntaxError: invalid syntax
(第37行为上述“除外”)
我还试图完全删除第37行,但结果出现了以下错误:File "", line 43
print(json.loads(error.read()))
^
SyntaxError: unexpected EOF while parsing
意外的EOF通常是当我错过关闭一个(或一个{但我再次检查,并没有找到它。我希望有人能帮我找到问题所在。在