• Json模块dumps、dump、loads、load函数介绍


    1、json.dumps()和loads()

             json.dumps()将dict类型数据转成str。

             json.loads()刚好相反,将str类型的数据转成dict。

    import json
    data= {'a':'1111','b':'2222','c':'3333','d':'4444'} 
    filename = r"d:1.json"  
    # 使用dumps() str_data = json.dumps(data) print(str_data) #输出{"a": "1111", "b": "2222", "c": "3333", "d": "4444"}
    # 使用loads() dict_data = json.loads(str_data) print(dict_data) #输出{'a': '1111', 'b': '2222', 'c': '3333', 'd': '4444'} 

     2、json.dump()和json.load()

           json.dump主要用来文件写入,json.load主要用来文件读取。但是只能写入读取一条数据,多条会报错。

      json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文件中。

           json.load(f),f是一个文件对象,这个方法可以从文件中读取json数据。

    import json
    data = {'a':'1111','b':'2222','c':'3333','d':'4444'}
    filename = r"d:1.json"  
    
    # 使用dump()写入一行数据
    with open(filename, "w") as f:
        json.dump(data,f)
    
    # 使用load()读取一行数据
    with open(filename, 'r') as f:
        jsObj = json.load(f)
    for key in jsObj.keys(): 
        print('key: %s value: %s' % (key,jsObj.get(key)))

    输出:

    key: a value: 1111
    key: b value: 2222
    key: c value: 3333
    key: d value: 4444 

    3如何读取写入多行数据呢?

    import json
    
    filename = r"d:1.json"  
    data = [{'a':'1111','b':'2222','c':'3333','d':'4444'},
            {'e':'1111','f':'2222','g':'3333','h':'4444'},
            {'i':'1111','j':'2222','k':'3333','l':'4444'},
            {'m':'1111','n':'2222','o':'3333','p':'4444'}]
    
    #写入多行数据到文件
    with open(filename,'w') as f:
        for i in range(len(data)):
            f.write(json.dumps(data[i])+'
    ')  #一定要换行
    
    #从文件读取多行数据,并转化为list
    with open(filename,'r') as f:
        jsObj=[json.loads(line) for line in f]
    print(jsObj)
  • 相关阅读:
    安装 node-sass 的不成功
    input标签附带提示文字(bootstrap里面输入框的两侧同时添加额外元素)
    更改bootstrap的默认样式
    属性font-family:Font property font-family does not have generic default
    let与const命令
    vue之监听事件
    组件复用传值(待解决问题)
    vue之组件注册
    vue之组件理解(一)
    学习整理与细化(2)——HTML VS XHTML
  • 原文地址:https://www.cnblogs.com/xiaohuhu/p/9617307.html
Copyright © 2020-2023  润新知