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. C++/C# 开发高级案例资料一次送!关注加群领取哦!

    目前C/C++.C#.JAVA等语言开发的在线教育比较火爆,但小编所见的讲解高级案例的非常少,切合市场需求的较少.而且针对铁路.公路.建筑.市政.制造业等所有工业计算机辅助设计的开发技术和案例几乎没有 ...

  2. 修改apache默认主页,重定向404页面

    yum 下载apache后默认主页 默认配置文件: vim /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/welcome.conf 跳转页面到 /var/w ...

  3. [转载]致创业者:APP已死 服务永生

    前几日,有位创业者和我讲他在带领团队做一个将爱踢球的人集中在一起的App,我告诉他你的创业方向错了.原因在于你的目的是要为爱踢球的人提供服务,而你现在却在竭尽全力的做App,你应该做的是设计你为爱踢球 ...

  4. sourcestress 问题解决方案

    描述:在Windows系统下,在保证GitHub上的账号和密码正确的情况下,在push时候,输入正确的账号和密码后,却是提醒无效的账户密码. 解决方法:在C:\Users\...\AppData\Lo ...

  5. 【Java集合系列】---ArrayList

    开篇前言--ArrayList中的基本方法 前面的博文中,小编主要简单介绍java集合的总体架构,在接下来的博文中,小编将详细介绍里面的各个类,通过demo.对比,来对java集合类进行更加深入的理解 ...

  6. android M Launcher之LauncherModel (三)

    通过前两篇的分析,我们已经知道了LauncherModel的初始化及工作流程,如果您还不熟悉的话请看前两篇博文 android M Launcher之LauncherModel (一) android ...

  7. Android图表库MPAndroidChart(八)——饼状图的扩展:折线饼状图

    Android图表库MPAndroidChart(八)--饼状图的扩展:折线饼状图 我们接着上文,饼状图的扩展,增加折现的说明,来看下我们要实现的效果 因为之前对MPAndroidChart的熟悉,所 ...

  8. Studio 一些使用

    1,配置: W:\android_tools\AndroidStudio2.1.3_SDK\android-studio-ide-141.2456560-windows\android-studio\ ...

  9. Xcode7.3.1中SKAudioNode在Scene转换后无声的问题

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在新的Xcode中之前可以正常运行的SKAudioNode代码 ...

  10. 剑指offer-面试题7:俩个栈实现队列(java)

    详细分析请参照C语言版,这里仅仅给出实现代码,注释很详细,不得不说java各种api用起来真是爽飞了 1 package com.xsf.SordForOffer; 2 3 import java.u ...