美文网首页
Python的json模块

Python的json模块

作者: 词穷又词贫 | 来源:发表于2017-04-19 16:34 被阅读59次

python的Json模块:
load 与 loads 都是用于encode编码,将python数据(对象)转换成json数据(对象)
dump 与 dumps 都是用于decode解码,将json数据(对象)转换成python数据(对象)

load 与 loads 和 dump 与 dumps 的区别:
load,dump类似,同样都是操作文件句柄,比如本地有一个a.json文件名的json文件

    使用 json_file = json.load(open('a.json'))
    使用 json.dump(dict,open('a.json',"w"))将dict字典序列化为json对象存入到a.json文件当中

loads,dumps类似,同样都是操作内存对象,

    loads将python数据转化成json数据
    dumps将json数据转化成python数据

数据转换

    Decoder数据转换:
    JSON    -->     Python
    object          dict
    array           list
    string          str
    number (int)    int
    number (real)   float
    true            True
    false           False
    null            None

    Encoder数据转换:
    Python  -->         JSON
    dict                object
    list, tuple         array
    str                 string
    int, float, int-    numver
    float-derived Enums number
    True                true
    False               false
    None                null

序列化: 将数据结构或对象转换成二进制串的过程
反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程

例子:
    # loads方法
    import json
    jsonData = '{"a":1,"b":2}';     ==>python利用type方法看到jsonData是str对象
    test = json.loads(jsonData)     ==>python利用type方法看到test的是dict字典对象
    print (test)
    print (test.get('b'))
    #结果
    {'b': 2, 'a': 1}
    2
    # dumps dump,load方法
    data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True]     ==>python的列表
    data1 = json.dumps(data)        ==>data1为字符串类型
    file = open('data.json','a')
    json.dump(data1,file)
    file.close()
    file1 = open('data.json','r')
    data2 = json.load(file1)
    print (data2)

json格式数据转换存在第三方库:
Demjson
gitgub地址:
https://github.com/dmeranda/demjson

example:
>>> import demjson

>>> demjson.encode( ['one',42,True,None] )    # From Python to JSON
'["one",42,true,null]'

>>> demjson.decode( '["one",42,true,null]' )  # From JSON to Python
['one', 42, True, None]

相关文章

网友评论

      本文标题:Python的json模块

      本文链接:https://www.haomeiwen.com/subject/unlhzttx.html