• json模块 ---- dumps、loads、dump、load


    序列化:json.dumps         将python对象编码成json字符串

    反序列化:json.loads       将已编码的json字符串解码成python对象

    json.dump()  直接把python数据类型转化为json字符串 写入json文件

    json.load() 直接把json文件读出来,转化为python数据类型

    json.dump = json.dumps() + f.write()   

    json.load = f.read() + json.loads()      

    为甚么直接load 空json文件会报错?    json.load = f.read() + json.loads()        相当于json.loads('')   

    1.json.dumps()      将python对象编码成json字符串              

    list1 = ['张全蛋', '李小花']
    json_str = json.dumps(list1, ensure_ascii=False)
    print(json_str)
    print(type(json_str))

    >>> ["张全蛋", "李小花"]
    >>> <class 'str'>

    2. json.loads()   将已编码的json字符串解码成python对象

    python_data = json.loads(json_str)
    print(python_data)
    print(type(python_data))  # list
    
    >>> ['张全蛋', '李小花']
    >>>  <class 'list'>

     3. json.dump()   json.load() 原理

       json.dump = json.dumps() + f.write()      先将python数据类型转为json格式字符串,然后将json字符串写入json文件    

    # json.dumps()   
    dic = {'name': 'tank','age': 17} # 将ensure_ascii默认的ascii取消设置为False,可以在控制台看到中文,否则看到的是bytes类型数据 json_str = json.dumps(dic, ensure_ascii=False) #注意: 保存json数据时,用.json作为文件的后缀名 with open('user.json', 'w', encoding='utf-8') as f: f.write(json_str)

    json.load = f.read() + json.loads()           先将json格式字符串读出来,然后将json格式字符串转化为python数据类型

    # json.dumps()   
    dic = {'name': 'tank','age': 17}
    #类型数据
    with open('user.json', 'r', encoding='utf-8') as f:
           json_str=f.read()
    str = json.loads(s)

    json.dump()   json.load()

    # user_dic = {
    #     'username': 'tank',
    #     'password': 123
    # }
    # f = open('user2.json', 'w', encoding='utf-8')
    # json.dump(user_dic, f,ensure_ascii=False)
    # f.close()
    #
    # with open('user3.json', 'w', encoding='utf-8') as f:
    #     json.dump(user_dic, f)
    
    # with open('user3.json', 'r', encoding='utf-8') as f:
    #     user_dic = json.load(f)
    #     print(user_dic)
    #     print(type(user_dic))
  • 相关阅读:
    网上找的一个读取wave文件的代码片段
    用c++简单实现智能指针(转)
    剖析ifstream打开含中文路径名文件失败的原因(转)
    我是一个程序员
    .NET简谈委“.NET技术”托链 狼人:
    Entity Framework “.NET技术”4.1 推荐英文教程 狼人:
    Azure和Bing Maps API示“.NET技术”例经验分享 狼人:
    .NET中的异步编程“.NET技术”:使用F#简化异步编程 狼人:
    C#类类型“.NET技术” 狼人:
    Silverlight 应“.NET技术”用整合 狼人:
  • 原文地址:https://www.cnblogs.com/bigbox/p/11883163.html
Copyright © 2020-2023  润新知