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演示

  • 相关阅读:
    Find the Smallest K Elements in an Array
    Count of Smaller Number
    Number of Inversion Couple
    Delete False Elements
    Sort Array
    Tree Diameter
    Segment Tree Implementation
    Java Programming Mock Tests
    zz Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
    Algorithm about SubArrays & SubStrings
  • 原文地址:https://www.cnblogs.com/minseo/p/6857461.html
Copyright © 2011-2022 走看看