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 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
K-近邻算法的python实现代码分享
Dec 09 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
Python实现将json文件中向量写入Excel的方法
Mar 26 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
python实现根据文件格式分类
Oct 31 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 Python
浅析Python 序列化与反序列化
Aug 05 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 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初学者头痛的十四个问题
2006/07/12 PHP
利用PHP创建动态图像
2006/10/09 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
Easyui在treegrid添加控件的实现方法
2017/06/23 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
python实现的简单抽奖系统实例
2015/05/22 Python
Python定时执行之Timer用法示例
2015/05/27 Python
Python 含参构造函数实例详解
2017/05/25 Python
python程序控制NAO机器人行走
2019/04/29 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
python实现简单反弹球游戏
2021/04/12 Python
无线电通信名词解释
2022/02/18 无线电