Python <;类别';str'&燃气轮机;及<;类型';str'&燃气轮机;

Python <;类别';str'&燃气轮机;及<;类型';str'&燃气轮机;,python,types,decode,urllib,Python,Types,Decode,Urllib,我是python新手。我被弄糊涂了。 我通过以下方式获得了str: response = urllib.request.urlopen(req).read().decode() “响应”的类型是,而不是。 当我尝试在“for循环”中操作此str时: for ID in response: “响应”不是按行读取,而是按字符读取。 我打算把每一行“回复”放在列表的单个元素中。现在,我必须将响应写入一个文件,并使用“open”获取一个字符串,我可以在“for循环”中使用该字符串。没有区别。Pyt

我是python新手。我被
弄糊涂了。 我通过以下方式获得了str:

response = urllib.request.urlopen(req).read().decode()
“响应”的类型是
,而不是
。 当我尝试在“for循环”中操作此str时:

for ID in response: 
“响应”不是按行读取,而是按字符读取。
我打算把每一行“回复”放在列表的单个元素中。现在,我必须将响应写入一个文件,并使用“open”获取一个字符串
,我可以在“for循环”中使用该字符串。

没有区别。Python在Python2()和Python3()之间更改了
type
对象的文本表示形式。在Python2和Python3中,type对象的类型是,嗯,type:

python 2

>>> type(type('a'))
<type 'type'>

response
是一个字符串,枚举它会给出字符串中的字符。根据您可能希望使用的响应类型和HTML、JSON或其他解析器将其转换为python对象。

如评论员所述。在python3中:

>>>st = 'Hello Stack!'
>>>type(st)
<class 'str'>

您使用的是Python2还是Python3?
response=urllib.request.urlopen(req)
?Python3。lib没问题,你说得对。这就是Python2和pytho3的区别。谢谢你的回答。太棒了!我花了10多个小时,在互联网上尝试了很多例子,但都没有效果。这对于拆分和迭代列表非常有效。非常感谢。
for ID in response:
>>>st = 'Hello Stack!'
>>>type(st)
<class 'str'>
>>>st = 'Hello Stack!'
>>>type(st)
<type 'str'>
response = urllib.request.urlopen(req).read().decode()
lines = response.split('\n')
for x in lines:
    st = x.strip()
    # do some processing on st