zoukankan      html  css  js  c++  java
  • python编程 之 json包

    1,json是什么?

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。

    我的理解就是:json是一种统一的格式化的文件,比如,一个json里放着n行,每行是一个字典,字典里存放着字段。

    2,json.dumps

    作用:用于将 Python 对象编码成 JSON 字符串。

    语法:json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None,

    encoding="utf-8", default=None, sort_keys=False, **kw)    #括号中是其内部自定义的参数和参数的默认值

    基本用法:

    import json
    
    data=[{'a':1,'b':2,'c':3}]
    json=json.dumps(data)    #encode the data
    print json,type(json)
    
    #结果是[{"a": 1, "c": 3, "b": 2}]  <type 'str'>    #很神奇,结果是字符串格式的

    带参数用法:

    import json
    
    data=[{'a':1,'b':2,'c':3,'d':4}]
    jsondata=json.dumps(data,sort_keys=True,indent=5,separators=(',',':'))
    print jsondata,type(jsondata)

        sort_keys:编码成json的时候,是否按照键来排序。

        indent:输出的时候每行数据缩进5个空格

        separators:指定键值对的分隔符是逗号,键和值的分隔符是冒号

        Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key

        ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似uXXXX的显示数据,设置成False后,就能正常显示

        encoding:默认是UTF-8,设置json数据的编码方式。

        sort_keys:将数据根据keys的值进行排序。

    python转json数据类型:

    3 json.loads

    作用:json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。    

    语法:json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

    简单实例:(接上文实验)

    #jsondata等于[{"a":1,"b":2,"c":3,"d":4,"e":"5"}],是用dumps转化而来
    
    pythondata=json.loads(jsondata)
    print pythondata,type(pythondata)
    
    #结果是:[{u'a': 1, u'c': 3, u'b': 2, u'e': u'5', u'd': 4}] <type 'list'>

     json转python数据类型:

    4,实例

    1. json.dumps()函数是将一个Python数据类变成json格式的编码
    2. json.loads()函数是将json格式数据转换为想要的python格式
    import json
    def store(data):
        with open('data.json', 'w') as fw:
            #将字典转化为字符串
            json_str = json.dumps(data)    #python变成json
            fw.write(json_str)    #写到文件中
            #上面两句等同于下面这句
            # json.dump(data,fw)     #区分dump和dumps
    
    def load():
        with open('data.json','r') as f:    #文件源
            data = json.load(f)    #json变成python
            return data
    
    
    if __name__ == "__main__":
        json_data = '{"login":[{"username":"aa","password":"001"},{"username":"bb","password":"002"}],"register":[{"username":"cc","password":"003"},{"username":"dd","password":"004"}]}'
        # 函数是将json格式数据转换为字典
        data = json.loads(json_data)
        store(data)    #调用第一个函数,把python编程变成json
    
        data = load()    #调用第二函数:把刚刚成了的json的再变回python
        print(data)
  • 相关阅读:
    [dev][ipsec][esp] ipsec链路中断的感知问题
    [dev] Go语言查看doc与生成API doc
    [daily]gtk程序不跟随系统的dark主题
    [dev] Go的协程切换问题
    基因程序设计/基因编程/遗传编程
    [daily][emacs][go] 配置emacs go-mode的编辑环境以及环境变量问题
    Java Spring中@Query中使用JPQL LIKE 写法
    JavaScript 使用HTML DOM的oninput事件,实时监听value值变化
    Java中执行.exe文件
    Java关于List<String> 进行排序,重写Comparator()方法
  • 原文地址:https://www.cnblogs.com/0-lingdu/p/9561479.html
Copyright © 2011-2022 走看看