zoukankan      html  css  js  c++  java
  • Python之JSON序列

    Json

    不同平台(一般是不同的语言)之间进行数据交换

    vim day6-1.py

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    import json
    
    name = {
        'alex':[22,'M'],
        'rain':[21,'F']
    }
    
    name_after_transfer = json.dumps(name)
    print name
    print name_after_transfer
    

    好像没什么区别单引号变成双引号了,json其实是把字典转换成为了字符串

    在看以下列子

    vim day6-2.py

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    
    name = {
        'alex':[22,'M'],
        'rain':[21,'F']
    }
    
    f = file("data_to_qq.txt","wb")
    f.write(name)
    f.close()
    

    运行报错,传递必须是字符串或者二进制字符不能是字典

    修改代码

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    import json
    
    name = {
        'alex':[22,'M'],
        'rain':[21,'F']
    }
    
    name_after_transfer = json.dumps(name) #使用JSON方法把字典转化成字符串了
    f = file("data_to_qq.txt","wb")
    f.write(name_after_transfer)
    f.close()
    #print name
    #print name_after_transfer
    

    运行就会生成文件data_to_qq.txt了

    模拟调用这个数据文件

    vim qq_app.py

    import json
    f = file("data_to_qq.txt",'rb')
    name = json.loads(f.read())
    f.close()
    print name['alex']
    

    需要使用json的loads方式在把字符串文件导成字典才能取到值

    PS:该功能可以用在不同的程序之间的内存之间传递数据

      JSON只能转换常用的数据格式比如字典,字符串,数组,元祖等 不同语言之间的函数定义是不同的,所以不能转换(比如日期格式)

    json的dump方法有两种 

    1,dumps

    dump是读入到内存 dump可以直接写入文件

    2,dump

    load演示

  • 相关阅读:
    python 学习笔记7(类/对象的属性;特性,__getattr__)
    linux 误删文件恢复
    python 学习笔记6(数据库 sqlite)
    hive 函数 Cube
    边标志法填充多边形
    tolua#代码简要分析
    CocoaAsyncSocket + Protobuf 处理粘包和拆包问题
    【设计模式】适配器模式
    【设计模式】外观模式
    【操作系统】进程管理(二)
  • 原文地址:https://www.cnblogs.com/minseo/p/6857461.html
Copyright © 2011-2022 走看看