本文记录了自己学习实验楼的Python+GaodeAPI中遇到的问题和解决方法。
实验楼的作者开发环境为python2.x版本,而本文作者用的是python3.6版本,所以在完成开发的过程中难免会有因python版本差异而造成代码无法正常运行。详情请君移步正文。
- 1.TypeError: a bytes-like object is required, not ‘str’
问题一
- 问题描述: 编写完
crawl.py
运行报错:TypeError: a bytes-like object is required, not ‘str’.详情如图: 问题分析: python2.x版本中写入csv时,csv文件的创建必须加上参数’b’,即csv_file = open(‘rent.csv’,’wb’),表示用二进制进行文件写入,否则会出现隔行的现象。但是中python3.x版本中对csv文件读写时,打开方式都是w或r,没有用wb.
解决方案: 修改几处代码为即可:
csv_file = open('rent.csv','w')
house_title = house.select("h2")[0].string
house_money = house.select(".money")[0].select("b")[0].string