详解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 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
python实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
Python方法的延迟加载的示例代码
Dec 18 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
python实现复制大量文件功能
Aug 31 Python
Python银行系统实战源码
Oct 25 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
Dec 03 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
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
php 如何获取数组第一个值
2013/08/06 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
xml和web特殊字符
2009/04/28 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
富文本编辑器vue2-editor实现全屏功能
2019/05/26 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
python执行等待程序直到第二天零点的方法
2015/04/23 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
物流专业自荐信
2014/05/23 职场文书
环境卫生倡议书
2014/08/29 职场文书
安全先进班组材料
2014/12/26 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
python中mongodb包操作数据库
2022/04/19 Python