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输出9*9乘法表的方法
May 25 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
Python+Selenium自动化实现分页(pagination)处理
Mar 31 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
PyTorch搭建多项式回归模型(三)
May 22 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
python 同时读取多个文件的例子
Jul 16 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
Python 里最强的地图绘制神器
Mar 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
第四节 构造函数和析构函数 [4]
2006/10/09 PHP
用PHP实现文件上传二法
2006/10/09 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
2018/09/04 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python中取整的几种方法小结
2017/01/06 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
Python rstrip()方法实例详解
2018/11/11 Python
pytorch 预训练层的使用方法
2019/08/20 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
实习求职信
2013/12/01 职场文书
平面设计岗位职责
2013/12/14 职场文书
出国留学计划书
2014/04/27 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL