日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)

瀏覽:19日期:2022-08-05 17:59:39

異常可以防止出現(xiàn)一些不友好的信息返回給用戶,有助于提升程序的可用性,在java中通過try ... catch ... finally來處理異常,在Python中通過try ... except ... else來處理異常

一、以ZeroDivisionError為例,處理分母為0的除法異常

def division(numerator,denominator): result=numerator/denominator return result ret1=division(1,5)print(ret1)ret2=division(1,0)print(ret2)

淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)

1/5執(zhí)行正常,輸出0.2,但1/0,分母為0,拋出Traceback,該信息看起來非常不友好,try .. except可以獲取這些異常信息,并且允許轉(zhuǎn)換為用戶可讀性較好的提示。

def division(numerator,denominator): try: result=numerator/denominator return result except ZeroDivisionError: return 'denominator can not be zero' except BaseException: return 'pls check if the numerator and denominator is number.' else: return 'unknow error' ret1=division(1,5)print(ret1)ret2=division(1,0)print(ret2)

淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)

1/5正常計(jì)算,1/0提示“denominator can not be zero”,這個(gè)信息就比較友好,可讀性強(qiáng)。

一開始,我在這里犯了一個(gè)錯(cuò)誤,在try塊中沒有返回result,程序輸出了如下結(jié)果

1/5的時(shí)候,try塊沒有發(fā)生異常,所以接下來的兩個(gè)except都不會(huì)進(jìn)入,故就進(jìn)入到了else處,返回了unknow error,所以我們?cè)谑褂卯惓r(shí),一定要記得返回

淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)

如果在換一種方式,是否也可以正常返回結(jié)果

def division(numerator,denominator): try: result=numerator/denominator except ZeroDivisionError: result = 'denominator can not be zero' except BaseException: result = 'pls check if the numerator and denominator is number.' else: result = 'unknow error' return result ret1=division(1,5)print(ret1)ret2=division(1,0)print(ret2)

淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)

結(jié)果也和預(yù)期不一致,所以在使用異常處理時(shí),如果方法中有返回值,則一定要記得在try塊中也返回結(jié)果,如果try塊中執(zhí)行正常,異常處理在try執(zhí)行結(jié)束后結(jié)束,不再向下執(zhí)行。

二、JSON 讀寫數(shù)據(jù)

JSON(JavaScript Object Notation),最開始只有JavaScript語言使用,但由于其優(yōu)良的數(shù)據(jù)格式形式,逐漸被很多編程語言引用,如java中也是用到了JSON,并且有很多對(duì)應(yīng)的類庫處理JSON數(shù)據(jù)。Python中對(duì)JSON數(shù)據(jù)的讀取和保存可以使用json.load()和json.dump()方法.

json.dump方法接收兩個(gè)參數(shù),第一個(gè)參數(shù)為要保存的json數(shù)據(jù),第二個(gè)數(shù)據(jù)為打開的文件對(duì)象,使用時(shí)注意順序。

json.load方法接收一個(gè)文件對(duì)象作為參數(shù)

另外json還存在很多其他的方法,比如json.dumps將python數(shù)據(jù)類型進(jìn)行json格式編碼,可以簡單理解為將列表/字典轉(zhuǎn)換為json字符串,json.loads與json.dumps剛好相反,將json字符串轉(zhuǎn)換為列表/字典

如當(dāng)用戶登錄后,讓其輸入名稱,然后根據(jù)json文件中是否存在該用戶給出不同的提示

1、JSON寫入

import jsonfilename='myjson.json'with open(filename,’w’) as wr: json.dump([1,2,3,4],wr)

2、JSON讀取

import jsonfilename='myjson.json'with open(filename) as re: ls=json.load(re)print(ls)

json讀取時(shí),文件必須存在,且不能為空,且內(nèi)容格式要符合json規(guī)范

文件內(nèi)容為空以及不符合json格式規(guī)范,都會(huì)出現(xiàn)如下異常

淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)

3、使用JSON讀取實(shí)現(xiàn)一個(gè)簡單的需求

用戶首次登陸,提示歡迎信息,并將其登錄信息記錄到以SON格式保存到文件中,當(dāng)該用戶下次登錄后,將顯示歡迎回來,并且提示其上次登錄時(shí)間。輸入quit退出程序

import jsonimport osimport timeimport sysimport tracebackdef login(): json_file='./username.json' while(True): name=input('pls input your name: ') if 'quit' == name: sys.exit(0) curr_time=time.strftime(’%Y-%m-%d %H:%M:%S’,time.localtime(time.time())) user_dict_list=[] if os.path.exists(json_file): with open(json_file) as jf:try: # 文件內(nèi)容為空,或者文件內(nèi)容,或者不符合json格式,所以此處添加異常處理 user_dict_list=json.load(jf) isExist=False for ele in user_dict_list: username=ele.get('username') if username == name: isExist=True ele['lastLoginTime']=curr_time print ('welcome back: %s, last login : %s'%(name,curr_time)) break; if isExist == False: # 文件存在,且內(nèi)容格式正確,但不存在當(dāng)前用戶 first_login(user_dict_list,name,curr_time)except Exception: # 打印出異常信息,便于調(diào)測程序,正式使用事可以去掉,或者打印在后臺(tái),不給用戶看到 traceback.print_exc() #文件內(nèi)容為空,或者文件內(nèi)容格式不符合JSON要求 first_login(user_dict_list,name,curr_time) else: # 文件不存在 first_login(user_dict_list,name,curr_time) # 將用戶信息寫入/重新寫入到文件中 with open(json_file,’w’) as jf: json.dump(user_dict_list,jf) ’’’ 將用戶第一次登陸信息存放到集合中 ’’’def first_login(user_dict_list,name,curr_time): my_dict={'username':name,'lastLoginTime':curr_time} user_dict_list.append(my_dict) print ('welcome: %s, have a nice day.'%(name)) login()

淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)

輸入zhangsan和lisi,由于都是第一次登陸,所以打印出歡迎信息,再次數(shù)次zhangsan,由于其已經(jīng)登錄過,故其名稱和上次登錄時(shí)間已經(jīng)被記錄下來,再次登錄,打印出歡迎回來,及上次登錄時(shí)間,輸入quit退出程序。由于開發(fā)環(huán)境已經(jīng)設(shè)置了UTF-8編碼,輸入中文也是支持的

以上這篇淺談Python中的異常和JSON讀寫數(shù)據(jù)的實(shí)現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品护士| 国产欧美一区二区色老头| 尤物网精品视频| 丁香婷婷久久| 99视频在线精品国自产拍免费观看| 中日韩男男gay无套| 国产理论在线| 噜噜噜躁狠狠躁狠狠精品视频| 国产欧美视频在线| 麻豆mv在线观看| 欧美专区18| 国产日韩免费| 精品一区毛片| 国产精品调教| 久久国产66| 99精品美女| 久久av偷拍| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品xvideos88| 亚洲精选成人| 女人av一区| 秋霞影院一区二区三区| 麻豆精品av| 亚洲精品在线二区| 午夜av成人| 欧美日韩一区二区三区不卡视频 | 免费观看久久久4p| 久久一区亚洲| 亚洲精品亚洲人成在线观看| 亚洲黄色影院| 成人片免费看| 美女在线视频一区| 国产伦精品一区二区三区视频 | 欧美99久久| 国产欧美丝祙| 尤物精品在线| 国产精品精品国产一区二区| 蜜臀va亚洲va欧美va天堂| 久久精品国产精品亚洲毛片| 亚洲婷婷在线| 在线天堂资源www在线污| 欧美日韩国产高清电影| 国产欧美二区| 老鸭窝一区二区久久精品| 极品av在线| 免费在线亚洲| 四虎在线精品| 老鸭窝毛片一区二区三区| 丝袜脚交一区二区| 日韩精品a在线观看91| 国产亚洲精品美女久久| 日韩一区二区三区高清在线观看| 综合在线一区| 亚洲va在线| 国产精品啊啊啊| 欧美影院视频| 国产v日韩v欧美v| 亚洲v在线看| 婷婷精品进入| 影音先锋久久| 亚洲女同一区| 石原莉奈在线亚洲三区| 国产一区精品福利| 日韩国产一区二区三区| 色综合www| 欧美一级全黄| 日韩一区三区| 日韩不卡免费视频| 国产一区二区精品久| 免费人成在线不卡| 秋霞影视一区二区三区| 福利片在线一区二区| 亚洲一区成人| 欧美日韩色图| 欧美日韩在线观看视频小说| 欧美中文一区二区| 亚洲深夜福利在线观看| 日韩成人免费| 国产精品最新自拍| 欧美日韩精品一区二区视频| 麻豆国产一区| 欧美一级精品| 亚洲2区在线| 国产精品久久久久久模特| 尤物精品在线| 日韩.com| 国产精品麻豆成人av电影艾秋| 六月婷婷一区| 欧美片网站免费| 国产精品99精品一区二区三区∴ | 人人精品人人爱| 2023国产精品久久久精品双| 国产午夜精品一区在线观看| 久久先锋影音| 免费久久精品| 日本亚洲欧洲无免费码在线| 久久久精品网| 成人国产精品一区二区网站| 国产日本久久| 蜜臀av一区二区在线免费观看| 日韩在线黄色| 日韩在线播放一区二区| 国产盗摄——sm在线视频| 国产精品传媒麻豆hd| 日韩中文字幕亚洲一区二区va在线| 精品久久不卡| 婷婷久久免费视频| 国产一区导航| 国产偷自视频区视频一区二区| 日韩欧美一区二区三区免费观看| 精品久久99| 久久精品主播| 欧美精品一区二区久久| 精品一区三区| 国产亚洲高清视频| 国产亚洲久久| 国语精品一区| 日本不卡一区二区三区| 一区二区日韩免费看| 在线视频精品| 亚洲国产一区二区三区在线播放| 欧美专区18| 国产欧美视频在线| 国产精品久久国产愉拍| 国产精品www.| 9999国产精品| 亚洲精品一级| 欧美一区久久| 999国产精品999久久久久久| 日韩精品一页| 99精品视频在线| 精品理论电影在线| 久久亚洲电影| 久久激情一区| 精品久久网站| 亚洲激情精品| 日韩极品在线观看| 欧美大黑bbbbbbbbb在线| 视频精品一区| 国产一区福利| 午夜久久99| 国产精品一区二区美女视频免费看| 欧美特黄视频| 久久精品99国产国产精| 日韩在线观看中文字幕| 亚洲成人国产| 国产成人精品一区二区三区在线| 免费在线亚洲欧美| 蜜臀av一区二区三区| 亚洲精品麻豆| 综合国产精品| 亚洲手机在线| 国产中文在线播放| 欧美激情精品| 国产另类在线| 国产麻豆一区| 国产伦理久久久久久妇女| 亚洲精品91| 久久中文视频| 国产麻豆久久| xxxxx性欧美特大| 日韩av一区二区在线影视| 午夜在线精品偷拍| 日本不卡一区二区三区| 日韩高清电影免费| 国产精品网在线观看| 亚洲精品888| 综合亚洲自拍| 亚洲成人一区在线观看| 久久夜夜操妹子| 久久精品免费一区二区三区 | 久久国内精品自在自线400部| 久久亚洲国产精品一区二区| 九一国产精品| 亚洲一区二区三区高清| 老司机精品久久| 蜜芽一区二区三区| 影音先锋久久精品| 欧美精品影院| 免费黄色成人| 99久久精品费精品国产| 激情欧美一区| 宅男噜噜噜66国产日韩在线观看| 国产一区二区三区日韩精品| 欧美成人基地 | 久久精品一区二区国产| 精品视频97| 日韩欧美一区二区三区免费看| 亚洲香蕉网站| 午夜一区在线| 日韩黄色在线观看| 久久av影视| 欧美日韩四区| 国产精区一区二区| 成人一区而且| 中文在线不卡| 狠狠干成人综合网| 久久精品一区二区三区中文字幕| аⅴ资源天堂资源库在线| 色爱综合网欧美|