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计算程序运行时间的方法
Dec 13 Python
Python的Django框架中的数据库配置指南
Jul 17 Python
Python实现简单字典树的方法
Apr 29 Python
python执行使用shell命令方法分享
Nov 08 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
对python模块中多个类的用法详解
Jan 10 Python
Python 实现数据结构中的的栈队列
May 16 Python
python求平均数、方差、中位数的例子
Aug 22 Python
为什么说Python可以实现所有的算法
Oct 04 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python print不能立即打印的解决方式
Feb 19 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 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
PHP $_FILES中error返回值详解
2014/01/30 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
php微信公众号开发之简答题
2018/10/20 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
JScript中的条件注释详解
2015/04/24 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
Python输出各行命令详解
2018/02/01 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
Python流程控制语句的深入讲解
2020/06/15 Python
Python连接Impala实现步骤解析
2020/08/04 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
一道Delphi上机题
2012/06/04 面试题
应届毕业生应聘自荐信范文
2014/02/26 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
2014年组织部工作总结
2014/11/14 职场文书
爱心助学感谢信
2015/01/21 职场文书
话题作文之诚信
2019/11/28 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
Python经常使用的一些内置函数
2022/04/11 Python