python中解析json格式文件的方法示例


Posted in Python onMay 03, 2017

前言

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

本文主要介绍的是python中解析json格式文件的方法,解析json文件无非编码和解码,这里我们用了python下自带的json模块。当然还要结合python本身特有的dict类型的操作。下面来看看详细的介绍吧。

编码

编码用到的是json.dumps()函数,将字典转化为json对象。

import json
data = [{'a':"A",'b':(2,4),'c':3.0}] #list对象
print "DATA:",repr(data)
data_string = json.dumps(data)#dumps函数
print "JSON:",data_string

输出的结果是:

DATA: [{'a':'A','c':3.0,'b':(2,4)}] #python的dict类型的数据是没有顺序存储的
JSON: [{"a":"A","c":3.0,"b":[2,4]}]

解码

解码用json.loads()函数,将json格式转化为dict。

import json
data = '{"a":"A","b":[2,4],"c":3.0}' #json格式
decoded = json.loads(data)
print "DECODED:",decoded

输出的结果是

DECODED: [{u'a': u'A', u'c': 3.0, u'b': [2, 4]}]

编码和解码的过程中,元组会被变成无次序的列表,而字典的次序也并不能保证不变。

现在,处理json格式的重点便成了正确处理dict类型数据了。

常见错误

python的json模块不支持单引号,所以类似"{'a':'A','b':[2,4],'c':3.0}"的字符串是会报以下错误的:

ValueError: Expecting property name: line 1 column 2 (char 1)

这时候我们只需要把他单双引号互换即可:

'{"a":"A","b":[2,4],"c":3.0}'

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python list使用示例 list中找连续的数字
Jan 27 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
利用Python进行异常值分析实例代码
Dec 07 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
python pprint模块中print()和pprint()两者的区别
Feb 10 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
Python实现哲学家就餐问题实例代码
Nov 09 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 #Python
Pycharm学习教程(3) 代码运行调试
May 03 #Python
在centos7中分布式部署pyspider
May 03 #Python
python3读取MySQL-Front的MYSQL密码
May 03 #Python
Python判断变量是否为Json格式的字符串示例
May 03 #Python
Windows和Linux下Python输出彩色文字的方法教程
May 02 #Python
python中字符串类型json操作的注意事项
May 02 #Python
You might like
php 正则表达式小结
2009/08/31 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python显示进度条的方法
2014/09/20 Python
使用Python对MySQL数据操作
2017/04/06 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
个人自我鉴定写法
2013/11/30 职场文书
英文自我鉴定
2013/12/10 职场文书
项目开发计划书
2014/01/09 职场文书
单位消防安全责任书
2014/07/23 职场文书
企业法人授权委托书
2014/09/25 职场文书
办理护照工作证明
2014/10/10 职场文书
入党现实表现材料
2014/12/23 职场文书
五年级小学生评语
2014/12/26 职场文书
嘉宾邀请函
2015/01/31 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis