我正在学习 Python,我目前自己设置的项目包括从连接到网络的笔记本电脑发送一个问题,连接到MIT START NLP 数据库,输入问题,检索响应并显示响应。我已经阅读了 docs.python.org 上的“HOWTO 使用 urllib2 获取 Internet 资源”,但我似乎遗漏了这个想法的一些尖锐之处。这是我的代码:
import urllib
import urllib2
question = raw_input("What is your question? ")
url = 'http://start.csail.mit.edu/'
values = question
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
这是我得到的错误:
回溯(最后一次调用):文件“mitstart.py”,第 9 行,在 data = urllib.urlencode(values) 文件“/usr/lib/python2.7/urllib.py”,第 1298 行,在 urlencode 中引发 TypeError TypeError:不是有效的非字符串序列或映射对象
所以我认为我在 vales 中提出问题的方式是错误的,所以我做了
values = {question}
和values = (question)
和values = ('question')
没有喜悦。
(我知道,我的回答是“我在学习,已经很晚了,突然我的妻子决定她需要和我谈谈一些琐碎的事情,而我正试图解决这个问题)
我可以得到一些指导,或者至少可以指出正确的方向吗?