zoukankan      html  css  js  c++  java
  • 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))
  • 相关阅读:
    IOS之UIAlert​Controller
    IOS实现弹出菜单效果MenuViewController(背景 景深 弹出菜单)
    IOS之正则表达式
    死锁与递归锁
    线程与进程的一些应用
    开启线程的两种方式
    互斥锁
    进程的队列
    模拟抢票系统
    Python并发编程__多进程
  • 原文地址:https://www.cnblogs.com/bigbox/p/11883163.html
Copyright © 2011-2022 走看看