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 相关文章推荐
使用pdb模块调试Python程序实例
Jun 02 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
python web基础之加载静态文件实例
Mar 20 Python
Python smtplib实现发送邮件功能
May 22 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
python实现梯度下降法
Mar 24 Python
PyTorch中的C++扩展实现
Apr 02 Python
python从PDF中提取数据的示例
Oct 30 Python
4种方法python批量修改替换列表中元素
Apr 07 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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缓存类代码
2015/10/23 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
jQuery过滤选择器:not()方法使用介绍
2014/04/20 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
在Python中处理时间之clock()方法的使用
2015/05/22 Python
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
Python实现线程状态监测简单示例
2018/03/28 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
python日志logging模块使用方法分析
2019/05/23 Python
Python流程控制常用工具详解
2020/02/24 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
python源文件的字符编码知识点详解
2021/03/04 Python
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
小学教师培训方案
2014/06/09 职场文书
物流业务员岗位职责
2015/04/03 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS