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计数排序和基数排序算法实例
Apr 25 Python
使用Python实现下载网易云音乐的高清MV
Mar 16 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
python中sleep函数用法实例分析
Apr 29 Python
用Python计算三角函数之acos()方法的使用
May 15 Python
python中使用序列的方法
Aug 03 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
requests和lxml实现爬虫的方法
Jun 11 Python
python学生管理系统代码实现
Apr 05 Python
Python smtplib实现发送邮件功能
May 22 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 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中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
PHP乱码问题,UTF-8乱码常见问题小结
2012/04/09 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
2013/01/09 Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
2014/03/06 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python主线程捕获子线程的方法
2018/06/17 Python
对python函数签名的方法详解
2019/01/22 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Python argparse模块应用实例解析
2019/11/15 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
毕业生机械建模求职信
2013/10/14 职场文书
实习自我评价怎么写
2013/12/02 职场文书
护士辞职信范文
2014/01/19 职场文书
书香校园活动方案
2014/02/28 职场文书
导师鉴定意见
2015/06/05 职场文书
小学生运动会广播
2015/08/19 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android