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 相关文章推荐
详解Python3中yield生成器的用法
Aug 20 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
python检索特定内容的文本文件实例
Jun 05 Python
使用sklearn之LabelEncoder将Label标准化的方法
Jul 11 Python
Sanic框架Cookies操作示例
Jul 17 Python
Python3 log10()函数简单用法
Feb 19 Python
Python3之手动创建迭代器的实例代码
May 22 Python
Python从函数参数类型引出元组实例分析
May 28 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
python 决策树算法的实现
Oct 09 Python
解决pytorch 模型复制的一些问题
Mar 03 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实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
php跨服务器访问方法小结
2015/05/12 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
深入理解Django的中间件middleware
2018/03/14 Python
python实现名片管理系统项目
2019/04/26 Python
python实现Excel文件转换为TXT文件
2019/04/28 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
golang/python实现归并排序实例代码
2020/08/30 Python
python安装sklearn模块的方法详解
2020/11/28 Python
如何用python批量调整视频声音
2020/12/22 Python
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
清洁工表扬信
2014/01/08 职场文书
汽车促销活动方案
2014/03/31 职场文书
交通事故调解协议书
2014/04/16 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
表扬信范文
2019/04/22 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers