json文件2018-10-15

1.文件操作打开关闭缩写

with open() 打开文件缩写
打开文件时,以'r'/'rb'读的形式打开,如果文件不存在会报错;以写'w'/'a'的形式打开,文件不存在的情况下会创建对应文件
with open(文件路径,打开方式,encoding=编码方式)as 文件对象:
文件操作代码

with open('./files/testing.txt') as f:
    f.write('how are u?\nfine,thank you.\n')

说明:这种操作,打开并执行文件后会自动关闭该文件
编码方式只有在文本文件时才用

2.二进制文件的读写

常见二进制文件:视频文件/音频文件/图片/压缩包等
注意:二进制文件读写不能设置文本编码方式(不能给encoding赋值)
bytes-->字节,是python专门用来表示二进制的数据类型
===============================================================

json文件

json是一种特定格式的数据,主要用来在互联网上做文本数据传输。
json数据本身是文本数据,json文件就是后缀是.json的文件,文件内容需满足json格式要求

1.json格式

  • 一个json对应一条数据
  • json中的数据必须是json对应的数据类型
    数字类型(number)-->所有的数字,包含整数和小数。
    字符串类型(string)-->只能用双引号""括起来的数据。
    数组(array)-->相当于python中的列表,[1,3,4,"3d"]
    字典(dictionary)-->相当于python中的字典
    布尔-->true和false(首字母是小写不能大写)
    null-->相当于None,用来表示空
    同理,除了int/float/string/list/dict/bool/None,其他数据无法转为json文件

2.python对json的支持

python中专门提供了一个json模块,用来处理json数据
import json
json.load(json文件对象)-->将json文件对象内容读出来,并且将内容转换成python对应的数据类型。要求文件内容必须是json格式数据
json.dump(内容,json文件路径)-->将指定内容以json格式写入到json文件中
loads(json格式字符串)-->将字符串内容是json数据的字符串转换成python对应的数据类型
dumps(内容)-->将指定内容转化成json格式的字符串

import json
content= json.loads('"abc"')
content2=json.loads('234')
print(content,type(content),content2,type(content2))

abc <class 'str'> 234 <class 'int'>

python转json

3.dumps与dump

dumps(内容)-->内容是python数据,返回值是一个字符串,且字符串内容是满足json格式的
注意:集合不能转化为json数据

import json
str1=json.dumps([2,4,4])
print(str1,type(str1))

[2, 4, 4] <class 'str'>

dump(内容,文件对象)-->将内容以json格式写入文件中

#学生管理系统:添加学生,要求之前添加过的学生,下次执行程序的时候还在;显示学生信息

import json
with open('./files/student.json')as f:
    all_student=json.load(f)


def add_students():
    while True:
        global all_student

        name=input('请输入名字:')
        age=input('请输入年龄:')
        tel=input('请输入电话号码:')
        student={'name':name,'age':age,'tel':tel}
        all_student.append(student)
        with open('./files/student.json','w')as f:
            json.dump(all_student,f)
            print('添加成功!')
            print('1.继续添加')
            print('2.返回上一层')
            value=input('请选择1-2')
            if value==1:
                continue
            else:
                return
def show_students():
    for student in all_student:
        print(student)
while True:
    print('1.添加学生信息')
    print('2.查看学生信息')
    print('3.退出')
    value2=input('请选择1-3:')
    if value2=='1':
        add_students()
    if value2=='2':
        show_students()
    else:
        print('退出成功!')
        break

数据本地化的过程:
使用数据的时候从本地文件中去取数据,修改完数据后将新数据更新到本地文件中。

异常捕获

报错就是出现异常
出现异常后,不希望程序直接崩溃,而是想要自己对异常进行处理,就需要捕获异常。

  • 格式1:(可以捕获代码段1中出现的所有异常。finally语句可不出现,出现后try后代码是否出现异常及有无捕获代码,finally后代码段都会执行
    try:
    需要捕获异常的代码段1
    except:
    出现异常后会执行的代码段2
    finally:
    总会执行的代码段3

  • 格式2:(捕获指定异常类型)
    try:
    需要捕获异常的代码段1
    except 异常类型:
    出现异常后会执行的代码段2
    finally:
    总会执行的代码段3

  • 格式3:(捕获括号中指定的所有异常类型)
    try:
    需要捕获异常的代码段1
    except (异常类型1,异常类型2):
    出现异常后会执行的代码段2
    finally:
    总会执行的代码段3

  • 格式4:
    try:
    需要捕获异常的代码段1
    except 异常类型1:
    出现异常后会执行的代码段2
    except 异常类型2:
    出现异常后会执行的代码段3
    ……
    finally:
    总会执行的代码段3

抛出异常

raise 异常类型

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容