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中实现php的var_dump函数功能
Jan 21 Python
Python实现查找系统盘中需要找的字符
Jul 14 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
opencv python 傅里叶变换的使用
Jul 21 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
Python实现语音识别和语音合成功能
Sep 20 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
python图片指定区域替换img.paste函数的使用
Apr 09 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
Pandas 稀疏数据结构的实现
Jul 25 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 adodb操作mysql数据库
2009/03/19 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
php实现简易计算器
2020/08/28 PHP
ExtJs的Date格式字符代码
2010/12/30 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
Python的bit_length函数来二进制的位数方法
2019/08/27 Python
Python hashlib模块实例使用详解
2019/12/24 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python定义函数实现累计求和操作
2020/05/03 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
绩效工资分配方案
2014/01/18 职场文书
综艺节目策划方案
2014/06/13 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
2016年教师节慰问信
2015/12/01 职场文书
详解PHP Swoole与TCP三次握手
2021/05/27 PHP
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA