我是一名新手Python程序员,将在Python 2.7上运行的脚本转换为Python 3.3。我已经修复了一堆问题(urllib2等),现在我陷入了这个问题:
f.write( soup.findAll(attrs={"class":"topictitle"})[x3].string.strip(' \t\n\r') + ',' +
inx + ',' +
treadid + ',' +
sid + ',' +
link2.get('href')
+ ','
+ "http://civicfbthailand.com/forum/"
+ lnk.encode('utf-8')
+ '\n'
)
返回:
Traceback (most recent call last):
File "civicforum.py", line 73, in <module>
+ '\n'
TypeError: Can't convert 'bytes' object to str implicitly
第73行是列出的“+'\ n'”,但我不明白为什么这个字符串不能连接,或P27和P33之间的行为差异。 任何启示都赞赏。
答案 0 :(得分:0)
只需删除代码中.encode('utf-8')
的{{1}}部分即可。在Python 2.8中使用lnk.encode('utf-8')
方法来解决python2字符串是ASCII而Python3字符串是unicode的事实,因此不再需要那种hack ......而且不工作; - )
.encode()