详解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中使用全局日志时需要注意的问题
May 06 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
Python实现控制台进度条功能
Jan 04 Python
Python中shutil模块的学习笔记教程
Apr 04 Python
python计算auc指标实例
Jul 13 Python
python删除过期log文件操作实例解析
Jan 31 Python
单链表反转python实现代码示例
Feb 08 Python
python dataframe向下向上填充,fillna和ffill的方法
Nov 28 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
jupyter notebook实现显示行号
Apr 13 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面试题集锦
2012/03/08 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
优质的学校老师推荐信
2013/10/28 职场文书
简单租房协议书
2014/04/09 职场文书
倡议书范文
2014/04/16 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
亮剑观后感300字
2015/06/05 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
利用js实现简单开关灯代码
2021/11/23 Javascript
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫