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使用post提交数据到远程url的方法
Apr 29 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
基于Python生成个性二维码过程详解
Mar 05 Python
python 3.8.3 安装配置图文教程
May 21 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
python matlab库简单用法讲解
Dec 31 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 Python
python基于tkinter实现gif录屏功能
May 19 Python
Python基础之进程详解
May 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 header()函数使用说明
2008/07/10 PHP
用php实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
javascript实现youku的视频代码自适应宽度
2015/05/25 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
微信小程序开发探究
2016/12/27 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
js仿淘宝商品放大预览功能
2017/03/15 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
python实现中文输出的两种方法
2015/05/09 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
详解Python中where()函数的用法
2018/03/27 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
python模拟实现分发扑克牌
2020/04/22 Python
Python Json数据文件操作原理解析
2020/05/09 Python
python实现学生成绩测评系统
2020/06/22 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
保卫钓鱼岛口号
2014/06/20 职场文书
股东协议书范本2016
2016/03/21 职场文书
家电创业计划书
2019/08/05 职场文书
解决golang结构体tag编译错误的问题
2021/05/02 Golang