• Python的基础语法(十四)


    1 json

    1. 什么是json

      json和xml都是通用的数据格式,可以用于不同编程语言之间的数据交流。

      json相对于xml更小更轻、传输速度更快;xml相对json更安全。

    2. json数据

      json数据格式的要求:一个json有且只有一个数据;唯一的这个数据必须是json支持的类型的数据。

      json支持数据:

      1)数字:包括整数和小数,表示的时候直接写:100、23.5、-3.14、3e4

      2)字符串:用双引号引起来的数据:“abc”、“小明”、“abc\n123\u4e00”

      3)布尔:只有true和false两个值

      4)空值:null

      5)数组:相当于Python的列表:[数据1,数据2,…]

      6)字典:相当于Python的字典,但是键只能是字符串:{键1:值1,键2:值2,…}

    3. python数据和json数据之间相互转换

      python中提供了json模块专门用来处理python中的json数据。

      import json
      
      • 1

      1)json转Python

      jsonpython
      数字数字
      字符串字符串(双引号变单引号)
      布尔布尔(true -》True、false -》False)
      空值空值(null -》None)
      数组列表
      字典字典

      对应的函数🍇:

      json.loads(json格式字符串)	将json格式字符串对应的json数据转换Python数据
      
      • 1

      注意:json格式字符串指的是内容是json数据的字符串。

      content=open('data.json',encoding='utf-8').read()
      result=json.loads(content)
      print(result)
      
      result=json.loads("abc")	#报错,字符串内容是abc不是一个合法的json数据
      result=json.loads('"abc"')		#"abc"->'abc'
      
      result = json.loads('100')          # 100  -> 100
      print(result, type(result))
      
      result = json.loads('true')         # true  ->  True
      print(result, type(result))
      
      result = json.loads('[100, "小明", null, true, false]')
      print(result, type(result))
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15

      2)python转json

      pythonjson
      int、float数字
      str字符串(单引号变双引号)
      布尔布尔(True -》true、False -》false)
      Nonenull
      列表、元组数组
      字典字典

      对应的函数🍇:

      json.dumps(Python数据)	将指定Python数据转换成对应的json格式字符串
      
      • 1
      json.dumps(100)		# '100'
      json.dumps('abc')		# '"abc"'
      json.dumps(True)		# 'true'
      result = json.dumps({'a': 10, 20: 30, 'name': 'xiaoming', 'isMarred': True})
      print(result, type(result))     # '{"a": 10, "20": 30, "name": "xiaoming", "isMarred": true}'	
      
      • 1
      • 2
      • 3
      • 4
      • 5

    2 json的实际应用

    🍖学生管理系统添加学生。

    import json
    
    
    def add_student():
        while True:
            # 1. 输入学生信息
            print('=========添加学生==========')
            name = input('请输入学生姓名:')
            age = input('请输入学生的年龄:')
            tel = input('请输入学生的电话:')
            major = input('请输入学生的专业:')
            address = input('请输入学生的籍贯:')
    
            # 2. 保存学生信息
            content = open('student.txt', encoding='utf-8').read()        # '[]'
            all_students = json.loads(content)          # type: list
    
            # [{}]
            all_students.append({'name': name, 'age': age, 'tel': tel, 'major': major, 'address': address})
            open('student.txt', 'w', encoding='utf-8').write(json.dumps(all_students))
    
            print('添加成功!')
            # 3. 提示继续或者退出
            print('❤️1. 继续')
            print('❤️2. 退出')
            value = input('请选择:')
            if value == '1':
                pass
            else:
                # 打印已经添加过的所有的学生信息
                print(all_students)
                break
    
    
    if __name__ == '__main__':
        # add_student()
    
        # 统计电子专业学生的人数:
        all_student = json.loads(open('student.txt', encoding='utf-8').read())
        count = 0
        for x in all_student:
            if x['major'] == '电子':
                count += 1
        print(count)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
  • 相关阅读:
    GIT学习P1:操作分支
    【软件测试用例篇】
    kubernetes搭建笔记(一)——安装kubeadm
    Android实现点击链接跳转功能
    c++编写简易版2048小游戏
    NgRx 中如何进行状态管理?(含示例)
    (包治百病)江湖老中医治疗oracal序列重复
    典型数据结构-图,图的存储、基本操作和遍历
    Java笔记--反射机制一
    【Word 教程系列第 1 篇】如何去除 Word 表格中的箭头
  • 原文地址:https://blog.csdn.net/m0_69100942/article/details/126234776