详解python中的json的基本使用方法


Posted in Python onDecember 21, 2016

在Python中使用json的时候,主要也就是使用json模块,json是以一种良好的格式来进行数据的交互,从而在很多时候,可以使用json数据格式作为程序之间的接口。

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 
import json 
 
print json.load(open('kel.txt')) 
#deserialize string or unicode to python object 
j = json.loads(open('kel.txt').read(),encoding='utf-8') 
print type(j),j 
for i in j: 
  print i 
k = json.dumps(j,encoding='utf-8').decode('utf-8') 
print k

kel.txt文件内容如下:

{ 
  "中文":"kel", 
  "fist":"kel" 
}

执行结果如下:

{u'\u4e2d\u6587': u'kel', u'fist': u'kel'} 
<type 'dict'> {u'\u4e2d\u6587': u'kel', u'fist': u'kel'} 
中文 
fist 
{"\u4e2d\u6587": "kel", "fist": "kel"}

在其中主要使用的方法为json.loads和json.dumps

注意在loads中参数必须为string,从而在打开文件的时候,要使用read方法,否则会出错。

loads方法主要是用来加载json数据变成python中的对象,而dumps方法主要是将python对象修改为json格式。

开始遇到一个错误如下:

[root@python 56]# python kel.py  
Traceback (most recent call last): 
 File "kel.py", line 5, in <module> 
  json.load(open('kel.txt')) 
 File "/usr/local/python/lib/python2.7/json/__init__.py", line 291, in load 
  **kw) 
 File "/usr/local/python/lib/python2.7/json/__init__.py", line 339, in loads 
  return _default_decoder.decode(s) 
 File "/usr/local/python/lib/python2.7/json/decoder.py", line 364, in decode 
  obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
 File "/usr/local/python/lib/python2.7/json/decoder.py", line 382, in raw_decode 
  raise ValueError("No JSON object could be decoded") 
ValueError: No JSON object could be decoded

主要原因是因为,,,在json的数据格式中必须是双引号开头的,错误的json文件如下:

{ 
  "fist":'kel' 
}

kel.py内容如下:

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 
import json 
j = json.loads(open('kel.txt').read()) 
print type(j),j

双引号。。。单引号,傻傻的分不清楚

有的时候,在进行loads方法的时候,就是因为产生了单引号的字符串。。。在python中尤其如此,和其他的东西没啥关系,主要就是引号的关系!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
让python的Cookie.py模块支持冒号做key的方法
Dec 28 Python
python爬虫常用的模块分析
Aug 29 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
Python读写/追加excel文件Demo分享
May 03 Python
python保存log日志,实现用log日志画图
Dec 24 Python
Pytorch之保存读取模型实例
Dec 30 Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 Python
python能做哪方面的工作
Jun 15 Python
python OpenCV学习笔记
Mar 31 Python
python 算法题——快乐数的多种解法
May 27 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 #Python
python查看微信好友是否删除自己
Dec 19 #Python
python用reduce和map把字符串转为数字的方法
Dec 19 #Python
python虚拟环境virualenv的安装与使用
Dec 18 #Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
Dec 18 #Python
python 调用HBase的简单实例
Dec 18 #Python
python操作 hbase 数据的方法
Dec 18 #Python
You might like
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
vue项目引入ts步骤(小结)
2019/10/31 Javascript
js实现录音上传功能
2019/11/22 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
前端性能优化建议
2020/09/17 Javascript
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
Python爬虫之UserAgent的使用实例
2019/02/21 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
django框架forms组件用法实例详解
2019/12/10 Python
Python中if有多个条件处理方法
2020/02/26 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
党员学习十八大感想
2014/01/17 职场文书
党员公开承诺书
2014/03/25 职场文书
委托书格式范文
2015/01/28 职场文书
董事长致辞
2015/07/29 职场文书