Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python RESTAPI以.json格式输出_Python - Fatal编程技术网

Python RESTAPI以.json格式输出

Python RESTAPI以.json格式输出,python,Python,我正在创建一个脚本,用python调用RESTAPI,并以JSON格式输出结果。我的代码中出现了一些跟踪错误。我如何着手解决这个问题 'import sitecustomize' failed; use -v for traceback Traceback (most recent call last): File "/home/Desktop/Sync.py", line 12, in <module> url = urllib2.Request(request)

我正在创建一个脚本,用python调用RESTAPI,并以
JSON
格式输出结果。我的代码中出现了一些跟踪错误。我如何着手解决这个问题

'import sitecustomize' failed; use -v for traceback
Traceback (most recent call last):
  File "/home/Desktop/Sync.py", line 12, in <module>
    url = urllib2.Request(request)
  File "/usr/lib/python2.7/urllib2.py", line 202, in __init__
    self.__original = unwrap(url)
  File "/usr/lib/python2.7/urllib.py", line 1057, in unwrap
    url = url.strip()
  File "/usr/lib/python2.7/urllib2.py", line 229, in __getattr__
    raise AttributeError, attr
AttributeError: strip

您似乎有一个问题:

request=urllib2.Request( "http.google.com")
request.add_header("Authorization","Basic xxxxxxxxxxxxxxxxxxxxxxxx=")
url = urllib2.Request(request)
socket = urllib2.urlopen(url)
您正试图通过将请求对象传递给构造函数来创建名为“url”的请求对象

试试这个:

request=urllib2.Request( "http.google.com")
request.add_header("Authorization","Basic xxxxxxxxxxxxxxxxxxxxxxxx=")
socket = urllib2.urlopen(request)
请求
类的开始:

url应该是包含有效url的字符串

您当前只将另一个
请求
对象传递给其构造函数,因此这就是您看到的错误的原因。正确的方法是:

request=urllib2.Request( "http.google.com")
request.add_header("Authorization","Basic xxxxxxxxxxxxxxxxxxxxxxxx=")
socket = urllib2.urlopen(request)

使用
请求
而不是
urlib2
——您会发现这更容易。另外,python设置似乎有问题。至少你的
json.loads
不起任何作用,它会失败。请尝试删除
url=urllib2.Request(Request)
,并将下一行替换为
socket=urllib2.urlopen(Request)
我已经编辑了上面的代码,现在它正在工作。在命名上做了一些调整,这很有帮助
request=urllib2.Request( "http.google.com")
request.add_header("Authorization","Basic xxxxxxxxxxxxxxxxxxxxxxxx=")
socket = urllib2.urlopen(request)