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 相关文章推荐
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
OpenCV 模板匹配
Jul 10 Python
Python用字典构建多级菜单功能
Jul 11 Python
python中的global关键字的使用方法
Aug 20 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
python def 定义函数,调用函数方式
Jun 02 Python
Python如何实现线程间通信
Jul 30 Python
python操作链表的示例代码
Sep 27 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 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+javascript模拟Matrix画面
2006/10/09 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
2015/12/26 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
python图像常规操作
2017/11/11 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
python处理document文档保留原样式
2019/09/23 Python
Python创建数字列表的示例
2019/11/28 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
Java里面如何创建一个内部类的实例
2015/01/19 面试题
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2014年化验室工作总结
2014/11/21 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android