2012-04-22 21 views
32

Tôi đang cố gắng sử dụng phương thức urllib.parse.urlencode() trong một trong các tập lệnh của tôi. nhập urlliblỗi python 3.2 nói rằng urllib.parse.urlencode() không được định nghĩa

#!/usr/bin/python3.2 

import urllib 

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

Nó đã hoạt động trước nhưng bây giờ tôi nhận được lỗi sau.

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' 

Ban đầu tôi nghi ngờ vỏ python của tôi, nhưng khi tôi kiểm tra nó đang sử dụng python phiên bản 3.2 mà nên fiine.

Bây giờ tôi hoàn toàn lúng túng tại sao vỏ python hoạt động theo cách này. Tôi có thiếu gì đó ở đây không?

Cảm ơn

+0

@larsmans nhờ cho đáp ứng. – Rakesh

Trả lời

59

Bạn sẽ không hiển thị hàng nhập khẩu trong chương trình của bạn, vì vậy tôi không thể chắc chắn, nhưng tôi đặt cược bạn đã

import urllib 

mà sẽ không nhập khẩu và tái xuất khẩu riêng mô-đun urllib.parse. Do

import urllib.parse 

thay thế.

(import urllib là khá vô nghĩa bằng Python 3.x, vì tất cả các chức năng là trong các môđun con và những không được nhập bởi module mục cấp đầu.)

+0

cảm ơn bạn đã trả lời. Rất tiếc, tôi đã bỏ lỡ câu lệnh nhập khi sao chép mã. Bây giờ tôi đã chỉnh sửa câu hỏi của mình. giải pháp của bạn đã hiệu quả đối với tôi. Tôi đoán vô tình, tôi đã xóa phần _.parse_ khỏi câu lệnh nhập của tôi giả định rằng nó sẽ bao gồm mô-đun con. Kể từ trước đó tôi đã nhập urllib.parse thats lý do tại sao nó đã được làm việc trước, nhưng khi tôi loại bỏ submodule nó đã không làm việc và tôi đã nhầm lẫn. – Rakesh