2012-04-22 50 views
32

我想在我的一个脚本中使用urllib.parse.urlencode()方法。 进口的urllib蟒蛇3.2错误说urllib.parse.urlencode()没有定义

#!/usr/bin/python3.2 

import urllib 

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

它以前工作,但现在我得到以下错误。

输出

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' 

最初,我怀疑我的Python外壳,但是当我检查了它的使用Python 3.2版本应该是fiine。

现在我完全困惑了python shell为什么会这样做。 我在这里错过了什么吗?

感谢

+0

@larsmans用于响应。 – Rakesh 2012-04-22 14:58:23

回答

59

你不显示在你的程序的进口,所以我不能肯定,但我敢打赌,你没有

import urllib 

这将不会导入和再出口分开模块urllib.parse。做

import urllib.parse 

改为。

import urllib在Python 3.X而无谓,由于所有的功能是在子模块和这些不是由顶层模块导入。)由于

+0

感谢您的回复。 抱歉,我在复制代码时错过了导入声明。现在我编辑了我的问题。 你的解决方案为我工作。我猜无意中,我从导入语句中删除了_.parse_部分,假设它将包含子模块。因为之前我有导入urllib.parse这就是为什么它以前工作,但是当我删除子模块它不起作用,我很困惑。 – Rakesh 2012-04-22 15:08:15