详解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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
python使用rsa加密算法模块模拟新浪微博登录
Jan 22 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
python读取视频流提取视频帧的两种方法
Oct 22 Python
Numpy之文件存取的示例代码
Aug 03 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
python 决策树算法的实现
Oct 09 Python
Django缓存Cache使用详解
Nov 30 Python
python给list排序的简单方法
Dec 10 Python
Python内置数据类型中的集合详解
Mar 18 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文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
javascript中异常处理案例(推荐)
2016/10/03 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[02:05]2014DOTA2西雅图国际邀请赛 BBC第二天小组赛总结
2014/07/11 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
python实现简单温度转换的方法
2015/03/13 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
如何通过Python实现标签云算法
2019/07/02 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
数学系毕业生的自我评价
2014/01/10 职场文书
建设工地安全标语
2014/06/07 职场文书
社区志愿者培训方案
2014/06/10 职场文书
学生干部培训方案
2014/06/12 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
现货白银电话营销话术
2015/05/29 职场文书
死亡诗社观后感
2015/06/05 职场文书
唐山大地震的观后感
2015/06/05 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
Java Spring读取和存储详细操作
2022/08/05 Java/Android