On 2017-10-14 18:40, Irv Kalb wrote:

On Oct 13, 2017, at 3:27 PM, Irv Kalb <i...@furrypants.com> wrot
If I take the same program and just modify the print statement to add 
parentheses, then try to run it in Python 3.6 (on a Mac):

...
import urllib

# set the Yahoo finance url, set stock name, ask for last price
fullURLWithParameters = 'http://finance.yahoo.com/d/quotes.csv?s=aapl&f=l1'

# read all the data
response = urllib.urlopen(fullURLWithParameters).read()

print('Response is: ', response)

I get the following:

Traceback (most recent call last):
 File " ....  s/StockQuoteYahooAPIMinimal.py", line 9, in <module>
   response = urllib.urlopen(fullURLWithParameters).read()
AttributeError: module 'urllib' has no attribute 'urlopen'



Thanks for the responses, but I still can't get it to work correctly.  With 
MRAB's suggestion, I've modified the code to be:

from urllib import request

# set the Yahoo finance url, set stock name, ask for last price
fullURLWithParameters = 'http://finance.yahoo.com/d/quotes.csv?s=aapl&f=l1'

# read all the data
response = request.urlopen(fullURLWithParameters).read()

print('Response is: ', response)


But when I run that (Mac Python 3.6.1), I get:


Traceback (most recent call last):
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 1318, in do_open
     encode_chunked=req.has_header('Transfer-encoding'))
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py",
 line 1239, in request
     self._send_request(method, url, body, headers, encode_chunked)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py",
 line 1285, in _send_request
     self.endheaders(body, encode_chunked=encode_chunked)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py",
 line 1234, in endheaders
     self._send_output(message_body, encode_chunked=encode_chunked)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py",
 line 1026, in _send_output
     self.send(msg)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py",
 line 964, in send
     self.connect()
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py",
 line 1400, in connect
     server_hostname=server_hostname)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 
401, in wrap_socket
     _context=self, _session=session)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 
808, in __init__
     self.do_handshake()
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 
1061, in do_handshake
     self._sslobj.do_handshake()
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/ssl.py", line 
683, in do_handshake
     self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 
(_ssl.c:749)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
   File "/Python3 Intro Class/Module 9 - Dictionaries & Internet (not finished)/Module 9 
Files/StockQuoteYahooAPIMinimal.py", line 9, in <module>
     response = request.urlopen(fullURLWithParameters).read()
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 223, in urlopen
     return opener.open(url, data, timeout)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 532, in open
     response = meth(req, response)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 642, in http_response
     'http', request, response, code, msg, hdrs)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 564, in error
     result = self._call_chain(*args)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 504, in _call_chain
     result = func(*args)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 756, in http_error_302
     return self.parent.open(new, timeout=req.timeout)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 526, in open
     response = self._open(req, data)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 544, in _open
     '_open', req)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 504, in _call_chain
     result = func(*args)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 1361, in https_open
     context=self._context, check_hostname=self._check_hostname)
   File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/request.py",
 line 1320, in do_open
     raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate 
verify failed (_ssl.c:749)>



Using Stefan's suggestion from 2to3:

import urllib.request, urllib.parse, urllib.error

# set the Yahoo finance url, set stock name, ask for last price
fullURLWithParameters = 'http://finance.yahoo.com/d/quotes.csv?s=aapl&f=l1'

# read all the data
response = urllib.request.urlopen(fullURLWithParameters).read()

print('Response is: ', response)

I get the exact same traceback as above.


Also, if I add a try/except around the call:

# read all the data
try:
     response = urllib.request.urlopen(fullURLWithParameters).read()
except urllib.error.URLError as e:
     print(e)


I get the same bottom line error from the traceback above:

<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 
(_ssl.c:749)>

Huh???



I've read a bunch of documentation, and it looks like I'm doing everything 
right, but I cannot get this to work.  Any other suggestions to get this 3 line 
program to work correctly?

I'm on Windows 10 and it's working for me.

There's a question on StackOverflow that might help you:

https://stackoverflow.com/questions/34503206/ssl-certificate-verify-failed-python
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to