python中的json解释库有好几个,不同版本使用方法不同。
常用有 json-py 与smiplejson 两个包
其中,json-py 包含json.py外,还有一个minjson,两者用法上有差别:
import一样
import json   # 都是如此import的。
import minjson
 
 # json-py库用法
json.read( json_obj )#
Converting JSON to Python
json.write(python_obj)#
Converting Python to JSON
#json的minjson用法 
minjson.read( json_obj )#同上
minjson.write(python_obj)
# smiplejson  的用法
json.loads(json_obj)   #
Converting JSON to Python
json.dumps(python_obj)#
Converting Python to JSON
 

python2.5没有内置的json,要手动安装。我们现在使用的是 json-py3.4

python2.6内置json解释库,是 smiplejson

smiplejson  2.09 下载 http://pypi.python.org/pypi/simplejson/
json-py 3.4         下载 http://sourceforge.net/projects/json-py/files/

经过我测试两者的效率,发现
python2.5.4, XP下,1K次读/写结果如下:
------------------------------------------------------------
minjosn :     1.0737601508
json     :      4.49144874205
simplejson:  0.24600865082
---------------------------------------------------------------
python2.5.4, centOS5.3 (lniux)下:
minjosn     : 1.8272049427
json          : 8.26148796082
simplejson: 3.87293195724
-------------------------------------------------------------
以上令我不解的是XP下速度会比lniux快???
结论:
基于以上,个人感觉使用 minjson.py比较保险,现在我们开发使用的是 json-py速度最慢那个。。。
因为minjson.py只有一个文件,建议直接复制到工程公共库目录下,直接使用,免去安装痛苦。

附上测试脚本 ,希望有人在不同机子上测试结果帖上来。。。
[python] view
plain
copy

  1. #coding:utf8
  2. import timeit
  3. import json
  4. import minjson
  5. import simplejson
  6. js_obj = '''''  ["我是中文",
  7. {
  8. "bar":["测试阿", null, 1.0, 2], "bool":true
  9. }]'''
  10. py_obj= [u"我是中文",
  11. {
  12. ], "bool":True
  13. }]
  14. def test_minjson():
  15. minjson.read(js_obj)  #可注释其中一句,单测读/写
  16. minjson.write(py_obj)
  17. def test_json():
  18. json.read(js_obj)  #可注释其中一句,单测读/写
  19. json.write(py_obj)
  20. def test_smpjson():
  21. simplejson.loads(js_obj)
  22. simplejson.dumps(py_obj)
  23. if __name__=='__main__':
  24. from timeit import Timer
  25. t = Timer("test_minjson()", "from __main__ import test_minjson")
  26. ) # 默认number = 100万次
  27. t = Timer("test_json()", "from __main__ import test_json")
  28. ) # 默认number = 100万次
  29. t = Timer("test_smpjson()", "from __main__ import test_smpjson")
  30. ) # 默认number = 100万次
 
附录
python从web接口上查询信息

>>>
import urllib

>>>
url='http://a.bkeep.com/page/api/saInterface/searchServerInfo.htm?serviceTag=729HH2X'

>>>
page=urllib.urlopen(url)

>>>
data=page.read()

>>>
print data           //这个就是json的数据结构,str类型

like {“xx”:“xx”}

>>>
type(data)

<type
'str'>

解析json:

>>>
import json

>>>
ddata=json.read(data)

>>>
type(ddata)

<type
'dict'>

 
 

python安装json的方法;以及三种json库的区别的更多相关文章

  1. python每次处理一个字符的三种方法

    python每次处理一个字符的三种方法 a_string = "abccdea" print 'the first' for c in a_string: print ord(c) ...

  2. 三、用Delphi10.3 创建一条JSON数据的第三种方法,非常简洁的写法

    一.用Delphi10.3构造一个JSON数据的第三种方法,并格式化输出,代码如下: uses // System.JSON, System.JSON.Types, System.JSON.Write ...

  3. python对mysql数据库操作的三种不同方式

    首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...

  4. 判断python对象是否可调用的三种方式及其区别

    查找资料,基本上判断python对象是否为可调用的函数,有三种方法 使用内置的callable函数 callable(func) 用于检查对象是否可调用,返回True也可能调用失败,但是返回False ...

  5. 命令行运行Python脚本时传入参数的三种方式

    原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...

  6. (转)VMware虚拟机三种网络模式的区别及配置方法;

    我的一点实际经验理解桥接和NAT 桥接是虚拟机完全作为一个独立的地址接在局域网中,NAT是虚拟机依赖宿主主机地址转换的一种方式 例子我的虚拟机如果用桥接模式,连接外部网站如百度时会提示此pc没有装公司 ...

  7. uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式

    前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...

  8. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  9. List的remove()方法的三种正确打开方式

    转: java编程:List的remove()方法的三种正确打开方式! 2018年08月12日 16:26:13 Aries9986 阅读数 2728更多 分类专栏: leetcode刷题   版权声 ...

  10. xpath beautiful pyquery三种解析库

    这两天看了一下python常用的三种解析库,写篇随笔,整理一下思路.太菜了,若有错误的地方,欢迎大家随时指正.......(conme on.......) 爬取网页数据一般会经过 获取信息-> ...

随机推荐

  1. Redis学习汇总

    [Redis教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使用redis 4.学会安装redis 5.学会启动redis 6.使用redis客户端 7.redis数据结构 – ...

  2. c#默认类的修饰符。

    类的默认修饰符是internal  当其修饰符为internal时,其他模块不能访问该类, 所以class类的修饰符一般为public

  3. day06 Request Response

    rw 读写模板的设置 day05 Request Response 1. HttpServletResponse 简介 1.1 Response 的 OutputStream 输出中文的问题 1.2 ...

  4. 数据挖掘_requests模块的post方法

    前面已经跟大家讲了requests模块的get方法,这一篇文章我们要介绍的是requests模块中的另一个比较常用的方法,post方法 post方法的形式相比于get要复杂一些,这时因为post在提交 ...

  5. 关于使用Git的几点小技巧

    告诉git忽略对已经纳入版本管理的文件a的修改,git会一直忽略此文件直到重新告诉git可以再次跟踪此文件: git update-index --assume-unchanged a 告诉git恢复 ...

  6. OpenSuSE Linux下安装Oracle10g的步骤

    OpenSuSE Linux下安装Oracle10g的步骤: --root用户 --1.vi etc/profile 添加脚本: if [ \$USER = "oracle" ]; ...

  7. java连接sqlserver2008

    java连接sqlserver2008时应有sqljdbc4.jar驱动包.连接的示例代码如下: import java.sql.*; public class ConnectSQL { public ...

  8. C++笔记003:从一个小程序开始

      原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 安装好VS2010后,从第一个小程序开始. 在学习C语言时,我首先输出了一个程序员非常熟悉的对这个世界的问候:hello world! ...

  9. PHP HTTP 函数

    PHP HTTP 简介 HTTP 函数允许您在其他输出被发送之前,对由 Web 服务器发送到浏览器的信息进行操作. 安装 HTTP 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP ...

  10. linux:cpu 每-CPU 的变量

    每-CPU 的变量 每-CPU 变量是一个有趣的 2.6 内核的特性. 当你创建一个每-CPU变量, 系统中每个处理器获得它自己的这个变量拷贝. 这个可能象一个想做的奇怪的事情, 但是它有自己的优点. ...