概述
介绍几个在实际json解析过程中出现的问题,例子使用上篇Python实现递归解析json
1、eval:将字符串转换成字典
json_demo = eval(line[2])
1)对于这样的情况会报错,如下:
NameError: name 'false' is not defined
这是由于eval不支持null,true,false等,没办法转换为正确的None,True,False。
解决的办法是:定义一个全局的变量,如false=False,再去调用eval就可以正常使用了。
false = False
2、打印中文字典:
使用上述将字符串转换成字典的方式,会引起字符编码的问题,如果字典中有中文,会这样:
't3': 'target_xe9xa6x96xe9xa1xb5-xe6xb5xb7xe6x8axa5xe8xa7x86xe9xa2x91xe7x82xb9xe5x87xbb'
解决方法是:首先在文件开头定义使用utf-8编码。
# -*- coding: utf8 -*-
两种方式:
1)使用循环:即逐层嵌套解析;
2)使用json:
demo_line = json.dumps(json_demo,encoding="UTF-8",ensure_ascii=False)
打印结果如下:
"t3": "target_首页-海报视频点击"
3、格式化输出json.
使用如下方法,就可以将json格式化为非常清晰的样子:
demo_line = json.dumps(json_demo,encoding="UTF-8",ensure_ascii=False,indent=1)
最后
以上就是眼睛大毛衣为你收集整理的Python实现json解析中的问题及解决方法的全部内容,希望文章能够帮你解决Python实现json解析中的问题及解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复