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实现数通设备tftp备份配置文件示例
Apr 02 Python
Python数据结构之Array用法实例
Oct 09 Python
Python中使用MELIAE分析程序内存占用实例
Feb 18 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
Jun 05 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
Python-for循环的内部机制
Jun 12 Python
Python远程方法调用实现过程解析
Jul 28 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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 echo 输出字符串函数详解
2010/05/13 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
PHP+redis实现微博的拉模型案例详解
2019/07/10 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
js禁止表单重复提交
2017/08/29 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
使用Python写个小监控
2016/01/27 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python装饰器用法实例总结
2018/02/07 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
员工培训邀请函
2014/01/11 职场文书
《匆匆》教学反思
2014/02/22 职场文书
投标担保书范文
2014/04/02 职场文书
听证通知书
2015/04/24 职场文书
Python数据分析之pandas读取数据
2021/06/02 Python
python超详细实现完整学生成绩管理系统
2022/03/17 Python
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript