python2.7写中文数据到json文件报错UnicodeEncodeError
来源:互联网 发布:晒书房软件 编辑:程序博客网 时间:2024/06/08 06:04
在学习python爬虫,准备把爬到的数据写到JSON文件中时,发现报错
原代码
#coding:utf-8import jsonfrom bs4 import BeautifulSoupimport requestsuser_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0'headers = {'User-Agent':user_agent}r = requests.get('http://seputu.com',headers=headers)soup = BeautifulSoup(r.text, 'html.parser',from_encoding='utf-8')content = []for mulu in soup.find_all(class_="mulu"): h2 = mulu.find('h2') if h2 != None: h2_title = h2.string list = [] for a in mulu.find(class_="box").find_all('a'): href = a.get('href') box_title = a.get('title') list.append({'href':href,'bot_title':box_title}) content.append({'title':h2_title,'content':list})with open('qiye.json','wb') as fp: json.dump(content,fp=fp,indent=4,ensure_ascii=False)报错:
/usr/bin/python2.7 /home/repeat/PycharmProjects/untitled/qiye.py/home/repeat/.local/lib/python2.7/site-packages/bs4/__init__.py:146: UserWarning: You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored. warnings.warn("You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.")Traceback (most recent call last): File "/home/repeat/PycharmProjects/untitled/qiye.py", line 24, in <module> json.dump(content,fp=fp,indent=4,ensure_ascii=False) File "/usr/lib/python2.7/json/__init__.py", line 190, in dump fp.write(chunk)UnicodeEncodeError: 'ascii' codec can't encode characters in position 20-23: ordinal not in range(128)Process finished with exit code 1
解决办法:
把这段代码
with open('qiye.json','wb') as fp: json.dump(content,fp=fp,indent=4,ensure_ascii=False)
改成
with codecs.open('qiye.json','wb','utf-8') as fp: json.dump(content,fp=fp,indent=4,ensure_ascii=False)
即可。
阅读全文
0 0
- python2.7写中文数据到json文件报错UnicodeEncodeError
- Python2.7写入中文数据进sqlite3报错
- 解决python2.7中文报错问题
- 解决python2.7中文报错问题
- python2.7中文编码报错问题
- 解决python2.7中UnicodeEncodeError
- python-从文件读取json数据写到数据库
- tensorflow查看自己的图片数据报错UnicodeEncodeError
- Python2.7升级到3.0 HTMLTestrunner报错解决方法
- Django——报错:admin后台添加中文数据时报错——UnicodeEncodeError: 'ascii' codec can't encode characters in position..
- sparkSQL写数据到hdfs中出现Snappy报错
- python写json文件,中文乱码问题
- 写入json数据到文件
- 爬取得到数据写入过文件时出现UnicodeEncodeError的错误
- Python2.7使用Oracle插入中文字符报错问题解决方案
- php写数据到文件
- C++写数据到文件
- Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode 错误
- iOS UITextField rightView覆盖clearButton的解决办法
- php5.3+mysql+sql server+thinkphp3.2
- 算法系列之--Javascript和Kotlin的冒泡算法(原)
- js中event.keyCode用法及keyCode对照表
- Android 高德地图,显示地图,并定位当前的位置
- python2.7写中文数据到json文件报错UnicodeEncodeError
- mysql--索引应用
- Java对XML文档进行解析(JAXP-DOM解析)
- CodeForces
- C++ boost
- PCL 中 pcl::PointCloud<pcl::PointXYZRGBA>::ConstPtr 出现incomplete type is not allowed 的解决方法
- Java环境变量以及eclipse的配置
- 1216:找零钱
- Activity 启动模式