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 相关文章推荐
对web.py设置favicon.ico的方法详解
Dec 04 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
Feb 01 Python
python安装pil库方法及代码
Jun 25 Python
Python3内置模块random随机方法小结
Jul 13 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
Django自定义列表 models字段显示方式
Apr 03 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
python Matplotlib数据可视化(1):简单入门
Sep 30 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
Python Django获取URL中的数据详解
Nov 01 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
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
php生成excel文件的简单方法
2014/02/08 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
php实现的递归提成方案实例
2015/11/14 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
js中function()使用方法
2013/12/24 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
用Python进行行为驱动开发的入门教程
2015/04/23 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
请解释接口的显式实现有什么意义
2012/05/26 面试题
护理专业学生职业生涯规划范文
2014/03/11 职场文书
对孩子的寄语
2014/04/09 职场文书
先进事迹演讲稿
2014/09/01 职场文书
共青团员自我评价范文
2014/09/14 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
反邪教学习心得体会
2016/01/15 职场文书
心理学培训心得体会
2016/01/22 职场文书
2019新员工心得体会
2019/06/25 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
Python if else条件语句形式详解
2022/03/24 Python