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

013-json

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

013-json

文章目录
          • 1、什么是JSON
          • 2、JSON数据
          • 3、python数据与JSON 数据之间的相互转换
            • 3.1、json---->python
            • 示例
            • 3.2、python---->json
          • 4、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": "u4e3du4e3d", "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()


转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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