python 3.2 error saying urllib.parse.urlencode() is not defined

Question:

I am trying to use urllib.parse.urlencode() method in one of my scripts.
import urllib

#!/usr/bin/python3.2

import urllib

data = urllib.parse.urlencode({'type': 'device_code','client_id': 150792241632891})

It was working before but now I get following error.

Output

Traceback (most recent call last):
  File "/home/rakesh/programming/test.py", line 8, in <module>
    data = urllib.parse.urlencode({'type': 'device_code','client_id': 150792241632891})
AttributeError: 'module' object has no attribute 'parse'

Initially I doubt my python shell but when I checked it is using python version 3.2 which should be fiine.

Now I am totally perplexed why python shell is behaving this way.
Am I missing something here?

Thanks

Asked By: Rakesh

||

Answers:

You’re not showing the imports in your program, so I can’t be sure, but I bet you did

import urllib

which will not import and re-export the separate module urllib.parse. Do

import urllib.parse

instead.

(import urllib is rather senseless in Python 3.x, since all the functionality is in the submodules and these are not imported by the toplevel module.)

Answered By: Fred Foo
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.