013-json

1、什么是JSON

JSON和XML都是一种通用的数据格式,可以用于不同编程语言之间的数据交流

JSON格式相对于xml数据更简单轻小,传输速度更快,xml相当于JSON更安全

2、JSON数据

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

  • 数字:包括整数和小数,表示的时候直接写:100、0.31、-21、3e4
  • 字符串:由双引号引起来的数据 “sadsa”、“小明”
  • 布尔:只有true 和false两个值
  • 数组:相当于python的列表 [数据1,数据2,…]
  • 空值:null
  • 字典:相当于python的字典,但是JSON中的键只能是字符串
3、python数据与JSON 数据之间的相互转换
3.1、json---->python
json.load(json格式字符串)  将  json格式字符串  对应的JSON数据转换成python数据
注意:json格式字符串 指的是json数据的字符串 
jsonpython
数字数字
字符串字符串(双引号变单引号)
布尔布尔(true false->True False)
空值空值(null->None)
数组列表
字典字典
content=open('data.json',encoding='utf-8').read()
result=json.loads(content)
print(content)
print(result)
# result=json.loads("abc") # 报错,字符串内容是abc,不是一个合法的JSON数据
result=json.loads('"abc"')
print(result) # abc
result=json.loads('true')
print(result) # true
result=json.loads('100')
print(result) # 100
result=json.loads('[100,"小明",null,true,false]')
print(result)
示例
# 示例  从网页接口中解析数据获取所有英雄的名字
# 1 获取JSON数据(从文件中读出来,直接做网络请求)
import requests
resp=requests.get('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js?ts=2766570')
content=resp.text
# 2 json 解析
result=json.loads(content)
for i in result['hero']:
    print(i['name'],i['title'])
3.2、python---->json
json.dumps(Python数据)   将指定python数据转成对应的json格式字符串
pythonjson
int、float数字
str字符串(单引号转成双引号)
boolTrue False->true false
Nonenull
列表元组数组
字典字典
print(json.dumps(100)) # 100
print(json.dumps('abc')) # "abc"
print(json.dumps(True)) #  true
result=json.dumps({'a':10,20:30,'name':'丽丽','ismarried':True})
print(result) # {"a": 10, "20": 30, "name": "\u4e3d\u4e3d", "ismarried": true}
4、JSON的实际应用
# 示例  学生管理系统添加学生
import json

'''
========添加学生========
姓名:
年龄:
手机号:
专业:
籍贯:
添加成功!
1.继续
2.退出
请选择

'''
'''
数据存储思路
1、数据持久化
2、数据存储的格式
'''
def add_stu():
    while True:
        # 输入学生信息
        print(' ========添加学生======')
        name = input('请输入学生姓名: ')
        age = input('请输入学生的年龄: ')
        tel = input('请输入学生的电话: ')
        major = input('请输入学生的专业: ')
        address = input('请输入学生的籍贯: ')
        # 2.保存学生信息
        content=open('file/student.txt', 'r', encoding='utf-8').read()
        all_stu=json.loads(content) # type:list
        all_stu.append({'name':name,'age':age,'tel':tel,'major':major,'address':address})
        open('file/student.txt','w',encoding='utf-8').write(json.dumps(all_stu))

        print('添加成功')
        # 3.提示继续或者退出
        print('1.继续')
        print('2.退出')
        value=input('请选择:')
        if value=='1':
            pass
        else:
            print(all_stu)
            break

if __name__ == '__main__':
    add_stu()


“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兮知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值