栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

基础语言-第16天-json数据以及文件操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基础语言-第16天-json数据以及文件操作

json和文件操作 一、json数据 1.定义
  • json和xml都是一种通用的数据格式,可以用于不同编程语言之间的数据交流。
  • 对比:json相对于xml更小更轻、传输速度更快;xml相对于json更安全。
2.json数据格式
  • 要求

    1)一个json有且只有一个数据;
    2)唯一的这个数据必须是json支持的类型的数据。
    
  • json支持类型

    1)数字:整数、小数,直接表示:100,23.5,-3.14
    2)字符串:用双引号引起来的数据:"abc"、"小明"
    3)布尔:只有true和false两个值
    4)null
    5)相当于python的列表:[数据1,数据2,...]
    6)相当于python的字典,但是键只能是字符串:{键1:值1,键2:值2,...}
    
  • python数据和json数据之间的相互转换

    1)json转Python: json.loads(json格式字符串)

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

    json       ->        python
    数字       ->         数字
    字符串     ->         字符串(双引号变单引号)
    布尔       ->         布尔(true->True, false->False)
    空值       ->         空值(null->None)
    数组       ->         列表
    字典       ->         字典
    
    content = open('./files/data.json', encoding='utf-8').read()
    result = json.loads(content)
    print(result)
    
    result = json.loads('"abc"')
    print(result, type(result))   # abc 
    
    result = json.loads('100')
    print(result, type(result))   # 100 
    
    result = json.loads('true')
    print(result, type(result))   # True 
    

    2)Python转json: json.dumps(Python数据)

    python       ->        json
    int、float   ->         数字
    str          ->         字符串(单引号变双引号)
    bool         ->         True->true, False->false
    None         ->         null
    列表、元组     ->         数组
    字典          ->         字典
    
    result = json.dumps({'a': 10, 20: 30, 'name': 'xiaoming', 'isMarried': True})
    print(result)    # {"a": 10, "20": 30, "name": "xiaoming", "isMarried": true}
    
3.json实例-学生管理系统添加学生
# 示例:学生管理系统添加学生
"""
数据持久化
1.已添加学生信息持久化
2.文件内容格式:json
"""
def add():
    while True:
        # 1.输入学生信息
        print('=========添加学生==========')
        name = input('请输入学生姓名:')
        age = input('请输入学生年龄:')
        tel = input('请输入学生电话:')
        major = input('请输入学生专业:')
        address = input('请输入学生籍贯:')

        # 2.保存学生信息
        content = open('./files/students.txt', encoding='utf-8').read()
        all_students = json.loads(content)

        # 添加
        all_students.append({'name': name, 'age': age, 'tel': tel, 'major': major, 'address': address})
        open('./files/students.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()

结果:

=========添加学生==========
请输入学生姓名:stu4
请输入学生年龄:25
请输入学生电话:555
请输入学生专业:统计
请输入学生籍贯:福建
添加成功!
1.继续
2.退出
请选择:2
[{'name': 'stu1', 'age': '18', 'tel': '132', 'major': '信息', 'address': '四川'}, {'name': 'stu2', 'age': '119', 'tel': '118', 'major': '会计', 'address': '重庆'}, {'name': 'stu3', 'age': '21', 'tel': '124', 'major': '电子', 'address': '武汉'}, {'name': 'stu4', 'age': '25', 'tel': '555', 'major': '统计', 'address': '福建'}]
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1039855.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号