Problem
When I try to open a URL via urllib, but I get this error message:
File "C:\Users\albert\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 936, in connect
(self.host,self.port), self.timeout, self.source_address)
File "C:\Users\albert\AppData\Local\Programs\Python\Python36-32\lib\socket.py", line 722, in create_connection
raise err
File "C:\Users\albert\AppData\Local\Programs\Python\Python36-32\lib\socket.py", line 713, in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] 連線嘗試失敗,因為連線對象有一段時間並未正確回應,或是連線建立失敗,因為連線的主機無法回應。
Here has the code snippet:
import urllib.request, json
from test.json.row import row
with urllib.request.urlopen("http://od.moi.gov.tw/api/v1/rest/datastore/A01010000C-000628-023") as url:
data = json.loads(url.read().decode())
print(data)
dataList = []
count = 1
for value in data['result']['records']:
if(count > 1):
no = value['No'] # 編號
address = value['Address'] # 地點位置
deptNm = value['DeptNm'] # 管轄警察局
branchNm = value['BranchNm'] # 分局
dataList.append(row(no, address, deptNm, branchNm))
print('no={}, address={}, deptNm={}, branchNm={}'.format(no, address, deptNm, branchNm))
count += count
How-to
This error result from failing to connect to this URL. I need to configure proxy in my network environment as I connect. Hence, the updated code will look like:
import urllib.request, json
from test.json.row import row
import os
os.environ['http_proxy'] = 'http://proxy.cht.com.tw:8080'
with urllib.request.urlopen("http://od.moi.gov.tw/api/v1/rest/datastore/A01010000C-000628-023") as url:
data = json.loads(url.read().decode())
print(data)
dataList = []
count = 1
for value in data['result']['records']:
if(count > 1):
no = value['No'] # 編號
address = value['Address'] # 地點位置
deptNm = value['DeptNm'] # 管轄警察局
branchNm = value['BranchNm'] # 分局
dataList.append(row(no, address, deptNm, branchNm))
print('no={}, address={}, deptNm={}, branchNm={}'.format(no, address, deptNm, branchNm))
count += count