Python处理JSON时的值报错及编码报错的两则解决实录


Posted in Python onJune 26, 2016

1、ValueError: Invalid control character at: line 1 column 8363 (char 8362)
使用json.loads(json_data)时,出现:

ValueError: Invalid control character at: line 1 column 8363 (char 8362)

出现错误的原因是字符串中包含了回车符(\r)或者换行符(\n)
解决方法:
(1)对这些字符转义:

json_data = json_data.replace('\r', '\\r').replace('\n', '\\n')

(2)使用关键字strict:

json.loads(json_data, strict=False)

strict默认是True,它将严格控制内部字符串,将其设置为False,便可以允许你\n \r。

2、UnicodeEncodeError: ascii codec can't encode错误
在windows下写的python脚本,放到linux下运行,直接报:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)

出错原因是Python2.7在安装时,默认的编码是ascii,当程序中出现非ascii编码时,Python的处理常常会报这样的错,不过在Python3中就不会有这样的问题。
解决方法:
(1)临时解决方法:
在代码前加入:
import sys 
reload(sys) 
sys.setdefaultencoding('utf8')

(2)一劳永逸:
在Python的lib\site-packages文件夹下新建一个sitecustomize.py,内容如下:

# encoding=utf8 
import sys 

reload(sys) 
sys.setdefaultencoding('utf8')

这样的话,系统在Python启动的时候,自行调用该文件,设置系统的默认编码。

Python 相关文章推荐
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
跟老齐学Python之开始真正编程
Sep 12 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
Python探索之pLSA实现代码
Oct 25 Python
python小程序实现刷票功能详解
Jul 17 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
解决python父线程关闭后子线程不关闭问题
Apr 25 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
python实现canny边缘检测
Sep 14 Python
python中@contextmanager实例用法
Feb 07 Python
Python使用自带的ConfigParser模块读写ini配置文件
Jun 26 #Python
Python读写txt文本文件的操作方法全解析
Jun 26 #Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 #Python
python结合selenium获取XX省交通违章数据的实现思路及代码
Jun 26 #Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 #Python
python安装mysql-python简明笔记(ubuntu环境)
Jun 25 #Python
Python的装饰器用法学习笔记
Jun 24 #Python
You might like
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
用PHP读取RSS feed的代码
2008/08/01 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
javascript中的this详解
2014/12/08 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
Python中的with...as用法介绍
2015/05/28 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
Python字典底层实现原理详解
2019/12/18 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
html5的localstorage详解
2017/05/09 HTML / CSS
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
机修工岗位职责
2013/11/24 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
劳动竞赛口号
2014/06/16 职场文书
小学生暑假生活总结
2015/07/13 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js