逐行拆分变量python

时间:2014-04-12 21:23:41

标签: python http

我正在尝试使用python将HTTP请求拆分为不同的块(每个块由一行分隔)

这是我的代码:

request='''GET / HTTP/1.1


Host: '+str(host)+':'+str(port)+'''

User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: keep-alive'''.splitlines(True)

当这个运行时,我得到了这个:

...
TypeError: cannot concatenate 'str' and 'list' objects

以任何方式,这是一个列表对象? 我在这里弄错了什么?

3 个答案:

答案 0 :(得分:0)

str(host)是一个字符串。 .splitlines()返回list - 对换行符进行拆分(多行字符串隐式包含这些字符)。

您收到错误是因为splitlines()首先完成,只留下单独的字符串和list。它们是不同的类型,显然你不能将它们加在一起。

您需要通过将整个连接字符串括在括号中来覆盖优先级。

答案 1 :(得分:0)

由于operator precedence,最后会评估最后一个.splitlines(),然后你会得到一个你尝试追加字符串的字符串列表,这是不可能的。你必须用括号覆盖优先权。

答案 2 :(得分:0)

在连接运算符之前应用splitlines()方法,因此您尝试将列表附加到语句开头的字符串中。在调用splitlines()之前,将所有内容包装在()'中以形成整个字符串。