Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2011, 09:17
Torvalds
 
Fecha de Ingreso: marzo-2010
Mensajes: 34
Antigüedad: 14 años, 8 meses
Puntos: 0
send to twitter

amigos, queria saber si podrian determinar porque el siguiente codigo no funciona, porque la verdad que no tiene logica, todo lo veo perfecto, no soy tan experimentado en python, a ver si ustedes pueden ayudarme, de antemano muchas gracias.

Código Python:
Ver original
  1. import urllib.request
  2. import time
  3.  
  4. password="yourpass"
  5.  
  6. def send_to_twitter(msg):
  7.     password_manager = urllib.request.HTTPPasswordMgr()
  8.     password_manager.add_password("Twitter API",
  9.                    "http://twitter.com/statuses", "YourUsername", password)
  10.     http_handler = urllib.request.HTTPBasicAuthHandler(password_manager)
  11.     page_opener = urllib.request.build_opener(http_handler)
  12.     urllib.request.install_opener(page_opener)
  13.     params = urllib.parse.urlencode( {'status': msg} )
  14.     resp = urllib.request.urlopen("http://twitter.com/statuses/update.json", params)
  15.     resp.read()
  16.  
  17. def get_price():
  18.     page = urllib.request.urlopen("http://www.beans-r-us.biz/prices.html")
  19.     text = page.read().decode("utf8")
  20.     where = text.find('>$')
  21.     start_of_price = where + 2
  22.     end_of_price = start_of_price + 4
  23.     return float(text[start_of_price:end_of_price])
  24.  
  25. price_now = input("Do you want to see the price now (Y/N)? ")
  26.  
  27. if price_now == "Y":
  28.     send_to_twitter(get_price())
  29. else:
  30.     price = 99.99
  31.     while price > 4.74:
  32.         time.sleep(900)
  33.         price = get_price()
  34.     send_to_twitter("Buy!")

y aqui el error que me muestra el interprete


Traceback (most recent call last):
File "C:\Users\Marino\Documents\Pycode\hfprog_resources \Chapter 3\page108.py", line 28, in <module>
send_to_twitter(get_price())
File "C:\Users\Marino\Documents\Pycode\hfprog_resources \Chapter 3\page108.py", line 14, in send_to_twitter
resp = urllib.request.urlopen("http://twitter.com/statuses/update.json", params)
File "C:\Python32\lib\urllib\request.py", line 138, in urlopen
return opener.open(url, data, timeout)
File "C:\Python32\lib\urllib\request.py", line 364, in open
req = meth(req)
File "C:\Python32\lib\urllib\request.py", line 1052, in do_request_
raise TypeError("POST data should be bytes"
TypeError: POST data should be bytes or an iterable of bytes. It cannot be str.