zoukankan      html  css  js  c++  java
  • python安装json的方法;以及三种json库的区别

    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 plaincopy
    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.           "bar":[u"测试阿"None1.02], "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.       
    21. def test_smpjson():  
    22.     simplejson.loads(js_obj)  
    23.     simplejson.dumps(py_obj)  
    24. if __name__=='__main__':  
    25.    
    26.     from timeit import Timer  
    27.       
    28.     t = Timer("test_minjson()""from __main__ import test_minjson")  
    29.     print 'minjosn :', t.timeit(number = 10000# 默认number = 100万次  
    30.       
    31.     t = Timer("test_json()""from __main__ import test_json")  
    32.     print 'json    :', t.timeit(number = 10000# 默认number = 100万次  
    33.    
    34.     t = Timer("test_smpjson()""from __main__ import test_smpjson")  
    35.     print 'simplejson:', t.timeit(number = 10000# 默认number = 100万次  
     
    附录
    pythonweb接口上查询信息

    >>> 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'>

     

     

     

     

     

     

     
     
  • 相关阅读:
    ByteBuffer用法总结
    内部类访问外部同名属性或者方法
    floodlight 学习(一)
    ubuntu 更改文件所有者
    python cmd 模块
    matlab 矩阵
    python操作MySQL数据库
    Win 7 下制作 mac 系统启动U盘
    Window 常用命令
    大数据扫盲
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205652.html
Copyright © 2011-2022 走看看