Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 3.4 HTTP错误505从url检索json_Python_Json_Urllib - Fatal编程技术网

Python 3.4 HTTP错误505从url检索json

Python 3.4 HTTP错误505从url检索json,python,json,urllib,Python,Json,Urllib,我正在尝试连接到一个页面,该页面使用urllib以Python 3.4的JSON格式接收一些值并返回一些数据。我想将json返回的值保存到csv文件中 这就是我试过的 import json import urllib.request url = 'my_link/select?wt=json&indent=true&f=value' response = urllib.request.Request(url) response = urllib.request.url

我正在尝试连接到一个页面,该页面使用urllib以Python 3.4的JSON格式接收一些值并返回一些数据。我想将json返回的值保存到csv文件中

这就是我试过的

import json
import urllib.request

url = 'my_link/select?wt=json&indent=true&f=value'
response = urllib.request.Request(url)    
response = urllib.request.urlopen(response)
data = response.read()
我在下面得到一个错误:

urllib.error.HTTPError: HTTP Error 505: HTTP Version Not Supported

编辑:找到了我问题的解决方案。我在下面回答。

您发现一个服务器显然不想与HTTP/1.1对话。您可以通过修补
HTTP.client.HTTPConnection
类,声称您使用的是HTTP/1.0客户机来欺骗它:

import http.client
http.client.HTTPConnection._http_vsn = 10
http.client.HTTPConnection._http_vsn_str = 'HTTP/1.0'

我们正在尝试您的请求。

我使用了FancyURLopener,它成功了。我觉得这很有用:


希望这能帮助那些与我有相同问题的人。

我忘了提到我正在vpn后面运行此脚本。这就是我收到这个错误的原因吗?@Cryssie如果你的VPN包含一个透明代理,也许。很难说,谢谢你的帮助。您的输入帮助我查看了与服务器通信的其他方式,我发现了在本例中有效的fancyURLopener。
url_request = urllib.request.FancyURLopener({})
with url_request.open(url) as url_opener:
        json_data = url_opener.read().decode('utf-8')
        with open(file_output, 'w', encoding ='utf-8') as output:
            output.write(json_data)