2012-04-22 19 views
32

Estoy tratando de usar el método urllib.parse.urlencode() en uno de mis scripts. importación urlliberror de python 3.2 que dice urllib.parse.urlencode() no está definido

#!/usr/bin/python3.2 

import urllib 

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

Se estaba trabajando antes, pero ahora me sale error siguiente.

salida

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' 

Inicialmente dudo de mi caparazón pitón pero cuando me registré que está utilizando la versión 3.2 de Python, que debería haber fiine.

Ahora estoy totalmente perplejo por qué Python Shell se comporta de esta manera. ¿Me falta algo aquí?

Gracias

+0

@larsmans gracias por responder. – Rakesh

Respuesta

59

no está mostrando las importaciones en su programa, por lo que no se puede estar seguro, pero apuesto a que

import urllib 

que no importará y re-exportar el separada módulo urllib.parse. Do

import urllib.parse 

en su lugar.

(import urllib es bastante sin sentido en Python 3.x, ya que toda la funcionalidad se encuentra en los submódulos y estos no son importados por el módulo de nivel superior.)

+0

gracias por responder. Lo siento, me había perdido la declaración de importación al copiar el código. Ahora he editado mi pregunta. tu solución funcionó para mí. Supongo que, accidentalmente, eliminé _.parse_ parte de mi declaración de importación suponiendo que incluirá el submódulo. Desde antes tuve la importación de urllib.parse por eso estaba funcionando antes, pero cuando eliminé el submódulo no funcionó y me confundí. – Rakesh

Cuestiones relacionadas