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定时器使用示例分享
Feb 16 Python
Python打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python 错误和异常代码详解
Jan 29 Python
python中验证码连通域分割的方法详解
Jun 04 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
搞定这套Python爬虫面试题(面试会so easy)
Apr 03 Python
详解Python 解压缩文件
Apr 09 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
python函数超时自动退出的实操方法
Dec 28 Python
浅谈Python数学建模之线性规划
Jun 23 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中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
vant实现购物车功能
2020/06/29 Javascript
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
python的re正则表达式实例代码
2018/01/24 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
Django choices下拉列表绑定实例
2020/03/13 Python
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
印刷工程专业应届生求职信
2013/09/29 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
应聘教师自荐信
2015/03/26 职场文书
学生犯错保证书
2015/05/09 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
vue中 this.$set的使用详解
2021/11/17 Vue.js
Redis命令处理过程源码解析
2022/02/12 Redis