zoukankan      html  css  js  c++  java
  • python_json

    json: 作为不同语言间交互的一种共知"格式",不同语言数据交换,以及不同程序之间进行内存数据交换。

    简单例子:

    import json
    
    data = {'kk':222,44:'ssss',99:['ss','gg']}
    dict_to_json = json.dumps(data)   #把字典转化成json格式,也可以说是字符串(可以存硬盘)
    print dict_to_json
    
    json_to_dict = json.loads(dict_to_json)    #把json转字典
    
    print json_to_dict

    结果:

    {"kk": 222, "99": ["ss", "gg"], "44": "ssss"}
    {u'kk': 222, u'99': [u'ss', u'gg'], u'44': u'ssss'}

    json是常用于数据转换,但也不是所有的数据都可转换,面对复杂的数据格式,如时间格式,只能先把时间格式转成字符串格式,然后再转json。

    关于json里的dump和dumps以及load和loads的区别:

    import json
    '''
    a = range(10)   #创建个列表
    
    f = file('a_to_json.txt','wb')
    
    json.dump(a,f)    #直接执行json格式化及写入文件(硬盘)里
    
    f.close()
    '''
    
    f2 = file('a_to_json.txt')
    
    data2 = json.load(f2)    #读取出来,并转化回原来数据格式
    
    f2.close()
    
    #print type(data1)
    print type(data2)

    #结果:<type 'list'>

    从上课看出dump和dumps区别就是dump是直接对硬盘操作,而dumps操作数据存在内存,至于使用哪个,要看需求,dump写入文件方便,但它直接写内存速度可能会

    有影响。load和loads区别就是,load省略了读的步骤。

    在处理较复杂的数据类型时(如时间、类等),可以使用pickle,pickle在使用上和json基本一样。注:测试后函数不行

    import pickle
    import datetime
    
    a = [11,22,33,44]
    
    b = pickle.dumps(a)
    c = pickle.dumps(datetime.datetime.now())
    
    print b
    print '==========================================='
    print c
    print '==========================================='
    d = pickle.loads(c)
    print d

    结果 :

    (lp0
    I11
    aI22
    aI33
    aI44
    a.
    ===========================================
    cdatetime
    datetime
    p0
    (S'x07xe0x08x0bx12x02.x01xbdP'
    p1
    tp2
    Rp3
    .
    ===========================================
    2016-08-11 18:02:46.114000

  • 相关阅读:
    脚本,网络配置,指令
    拦截TextBox 双击消息
    VB指针操作和消息钩子
    文件和文件夹操作
    常见反编译产生错误 k__BackingField 解决办法
    关机/重启/注销
    通用命名前缀
    语言区域代码
    常用数据库链接字符串
    用VB实现COM+组件配置
  • 原文地址:https://www.cnblogs.com/fengzaoye/p/5761540.html
Copyright © 2011-2022 走看看