Re: Newbie problem with urllib.request.urlopen

2017-09-26 Thread Bernie Connors
On Tuesday, September 26, 2017 at 12:32:18 PM UTC-3, Bernie Connors wrote:
> Hello,
> 
>   My first post here on C.L.P.  I have only written a few python scripts 
> in 2.7 and now I'm trying my first python 3 script.  Can you tell me why this 
> snippet won't run?
> ---
> from urllib.request import urlopen
> 
> with 
> urlopen('http://geonb.snb.ca/arcgis/rest/services/GeoNB_SNB_Parcels/MapServer/0/query?outSR=4617&f=JSON&where=PID='75385120'')
>  as conn:
> print(conn)
> ---
> Thanks,
> Bernie.

Peter Otten,

  Yes that seems to work better.  Thanks for the tips.  But I see now that 
I am getting some http errors when I try to run this code from the Microsoft 
Azure Notebooks.  Here is the URL to my Note Book:
https://notebooks.azure.com/n/n31C2DSCOr8/notebooks/URLopen%20Test.ipynb
And here is the error:
URLError: 

Does anybody know if something can be done about this with urllib? Or is 
this completely related to the firewall rules at http://geonb.snb.ca??

Thanks,
Bernie.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Newbie problem with urllib.request.urlopen

2017-09-26 Thread Bernie Connors
On Tuesday, September 26, 2017 at 12:32:18 PM UTC-3, Bernie Connors wrote:
> Hello,
> 
>   My first post here on C.L.P.  I have only written a few python scripts 
> in 2.7 and now I'm trying my first python 3 script.  Can you tell me why this 
> snippet won't run?
> ---
> from urllib.request import urlopen
> 
> with 
> urlopen('http://geonb.snb.ca/arcgis/rest/services/GeoNB_SNB_Parcels/MapServer/0/query?outSR=4617&f=JSON&where=PID='75385120'')
>  as conn:
> print(conn)
> ---
> Thanks,
> Bernie.

Thomas,

  The PID parameter at the end of my url must be enclosed in single quotes, 
'75385120', or the API won't execute the query.  I have the code in a python 
notebook on Azure - 
https://notebooks.azure.com/n/n31C2DSCOr8/notebooks/URLopen%20Test.ipynb

Here are the error messages I am getting:
---
HTTPError Traceback (most recent call last)
 in ()
  1 from urllib.request import urlopen
> 2 with 
urlopen("http://geonb.snb.ca/arcgis/rest/services/GeoNB_SNB_Parcels/MapServer/0/query?outSR=4617&f=JSON&where=PID='75385120'")
 as conn:
  3 print(conn)

~/anaconda3_410/lib/python3.5/urllib/request.py in urlopen(url, data, timeout, 
cafile, capath, cadefault, context)
160 else:
161 opener = _opener
--> 162 return opener.open(url, data, timeout)
163 
164 def install_opener(opener):

~/anaconda3_410/lib/python3.5/urllib/request.py in open(self, fullurl, data, 
timeout)
469 for processor in self.process_response.get(protocol, []):
470 meth = getattr(processor, meth_name)
--> 471 response = meth(req, response)
472 
473 return response

~/anaconda3_410/lib/python3.5/urllib/request.py in http_response(self, request, 
response)
579 if not (200 <= code < 300):
580 response = self.parent.error(
--> 581 'http', request, response, code, msg, hdrs)
582 
583 return response

~/anaconda3_410/lib/python3.5/urllib/request.py in error(self, proto, *args)
507 if http_err:
508 args = (dict, 'default', 'http_error_default') + orig_args
--> 509 return self._call_chain(*args)
510 
511 # XXX probably also want an abstract factory that knows when it makes

~/anaconda3_410/lib/python3.5/urllib/request.py in _call_chain(self, chain, 
kind, meth_name, *args)
441 for handler in handlers:
442 func = getattr(handler, meth_name)
--> 443 result = func(*args)
444 if result is not None:
445 return result

~/anaconda3_410/lib/python3.5/urllib/request.py in http_error_default(self, 
req, fp, code, msg, hdrs)
587 class HTTPDefaultErrorHandler(BaseHandler):
588 def http_error_default(self, req, fp, code, msg, hdrs):
--> 589 raise HTTPError(req.full_url, code, msg, hdrs, fp)
590 
591 class HTTPRedirectHandler(BaseHandler):

HTTPError: HTTP Error 403: Forbidden
--

Thanks,
Bernie.

-- 
https://mail.python.org/mailman/listinfo/python-list