版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)27
操作文件(二)
JSON文件操作程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)CONTENTS目錄01任務(wù)背景與目標(biāo)02認(rèn)識(shí)JSON文件和訪問(wèn)JSON文件的方法03JSON文件操作案例04任務(wù)測(cè)試與總結(jié)任務(wù)背景與目標(biāo)01一、任務(wù)背景JSON文件其簡(jiǎn)潔、易讀、跨平臺(tái)等特性,在各類技術(shù)場(chǎng)景中被廣泛應(yīng)用。
本任務(wù)通過(guò)處理校園機(jī)器人的運(yùn)行日志、任務(wù)記錄等,學(xué)習(xí)JSON文件的操作方法。。
users.json文件二、任務(wù)目標(biāo)掌握J(rèn)SON文件特殊的數(shù)據(jù)組織形式;1.JSON存儲(chǔ)數(shù)據(jù)的方式掌握使用json庫(kù)中的loads()和dumps()進(jìn)行JSON文件讀寫的方法;2.使用json標(biāo)準(zhǔn)庫(kù)讀寫JSON文件的方法認(rèn)識(shí)JSON文件和基于
JSON庫(kù)訪問(wèn)JSON文件02一、認(rèn)識(shí)JSON文件1.JSON是存儲(chǔ)JavaScript對(duì)象格式數(shù)據(jù)的文本文件,采用多層字典結(jié)構(gòu)組織數(shù)據(jù),層次清晰、易讀易寫;2.JSON是輕量級(jí)數(shù)據(jù)交換格式,被大部分編程語(yǔ)言和數(shù)據(jù)處理工具支持,適合非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)與交換。robots_data.json的數(shù)據(jù)二、JSON文件操作JSON文件處理通過(guò)標(biāo)準(zhǔn)的json庫(kù)提供的方法,按照讀取文件、修改數(shù)據(jù)、保存修改和驗(yàn)證新數(shù)據(jù)符合JSON格式等四步實(shí)施。1.
讀取JSON文件importjson#導(dǎo)入標(biāo)準(zhǔn)庫(kù)jsonfile_path='robotBasicInfo.json'try:#用try...except語(yǔ)句執(zhí)行JSON文件訪問(wèn)withopen(file_path,'r',encoding='utf-8')asfile:data=json.load(file)#讀取文件中的數(shù)據(jù),格式不對(duì)則讀取失敗print(f"JSON文件格式正確,數(shù)據(jù)已經(jīng)取出!")exceptjson.JSONDecodeError:print(f"文件格式錯(cuò),讀取失??!")forkey,valueindata.items():#按字典方式遍歷讀出的數(shù)據(jù)
print(f"{key}--{value}")
程序示例說(shuō)明用json.loads()方法讀取JSON文件時(shí),將文件中的數(shù)據(jù)轉(zhuǎn)換為字典存入字典對(duì)象;遍歷字典對(duì)象,即查看各項(xiàng)數(shù)據(jù)的鍵和值。二、JSON文件操作
2.
向JSON文件寫入數(shù)據(jù)
用json.dump()方法可將一個(gè)Python對(duì)象編碼成JSON格式的字符串寫入JSON文件,但注意寫入后要進(jìn)行JSON數(shù)據(jù)的格式驗(yàn)證importjson#導(dǎo)入標(biāo)準(zhǔn)庫(kù)json#準(zhǔn)備字典封裝的層次型鍵值數(shù)據(jù)dataNew={'id':'004','name':'小綠','status':'配送中','location':'一樓大廳','battery':90,'task':{'taskID':'T012','destination':'圖書(shū)區(qū)9號(hào)桌位','cargo':'面包'}}file_path='robotBasicInfo.json'withopen(file_path,'w',encoding='utf-8')asfile:#以寫的方式打開(kāi)文件json.dump(dataNew,file,ensure_ascii=False,indent=4)#indent:每層縮進(jìn)字符數(shù),ensure_ascii=False確保非ASCII字符(如中文)能正確顯示
程序示例JSON文件操作案例03【案例27-4】調(diào)整校園服務(wù)機(jī)器人數(shù)據(jù)文件中的設(shè)備配置和完成任務(wù)數(shù)一、案例描述
打開(kāi)robots_data.json文件、讀出數(shù)據(jù)后,在每個(gè)機(jī)器人的“配置”項(xiàng)中添加“Comblock”項(xiàng)(值為“5G”)、將“完成任務(wù)數(shù)”項(xiàng)值加1,修改后的數(shù)據(jù)存入robots_dataModi.json文件。圖6-16查看robots_data.json的數(shù)據(jù)二、操作步驟詳解1.導(dǎo)入JSON庫(kù)導(dǎo)入json庫(kù)支持JSON文件操作,2.定義函數(shù)封裝文件操作定義函數(shù),封裝JSON文件的讀與寫,封裝中間字典型數(shù)據(jù)的處理。3.主程序調(diào)用函數(shù)調(diào)用封裝讀、改、寫入JSON文件的函數(shù),完成文件操作。三、代碼示例及顯示結(jié)果importjsonimportpandasaspdnwPz={"ComBlock":"5G"}defread_json(file_path):withopen(file_path,'r',encoding='utf-8')asfile:data=json.load(file)returndatadefmodify_data(data):forrbtindata['robots']:print(f"原id:{rbt['id']},配置:{rbt['配置']},完成任務(wù)數(shù):{rbt['完成任務(wù)數(shù)']}")rbt['配置']["ComBlock"]="5G"#修改數(shù)據(jù)rbt['完成任務(wù)數(shù)']=str(int(rbt['完成任務(wù)數(shù)'])+1)print(f"修改后的id:{rbt['id']},配置:{rbt['配置']},完成任務(wù)數(shù):{rbt['完成任務(wù)數(shù)']}")returndatadefwrite_JSON(file_path,data):withopen(file_path,'w',encoding='utf-8')asfile:json.dump(data,file,ensure_ascii=False,indent=4)#主程序data=read_json('robots_data.json')?modified_data=modify_data(data)rbt_df=convert_to_df(modified_data)print(rbt_df)write_JSON("robots_dataModi.json",modified_data)圖6-17
程序運(yùn)行結(jié)果四、案例總結(jié):JSON文件操作案例01JSON層次化的數(shù)據(jù)組織
JSON的嵌套字典結(jié)構(gòu)適合存儲(chǔ)層次化數(shù)據(jù),通過(guò)鍵名可直接訪問(wèn)和修改深層數(shù)據(jù)(如rbt['配置']['ComBlock']);02JSON文件的優(yōu)勢(shì)
JSON組織數(shù)據(jù)的方式在處理非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)時(shí)具有顯著優(yōu)勢(shì),特別適用于大數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)處理的應(yīng)用場(chǎng)景任務(wù)測(cè)試與總結(jié)05
一、填空題1.要將JSON格式的字符串解碼為Python對(duì)象,可以使用________________函數(shù)。2.使用________________函數(shù)可以將Python對(duì)象(如字典或列表)編碼為JSON格式的字符串。3.使用json.load(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025浙江溫州市平陽(yáng)縣興陽(yáng)控股集團(tuán)有限公司下屬房開(kāi)公司招聘項(xiàng)目制員工15人考試參考試題及答案解析
- 2026甘肅能化集團(tuán)校園招聘183人備考筆試試題及答案解析
- 2025重慶市沙坪壩區(qū)歌樂(lè)山社區(qū)衛(wèi)生服務(wù)中心招聘醫(yī)師2人備考筆試試題及答案解析
- 深度解析(2026)《GBT 26079-2010梁式吊具》(2026年)深度解析
- 深度解析(2026)《GBT 26023-2010抗射線用高精度鎢板》(2026年)深度解析
- 2025西藏拉孜縣中心醫(yī)院招聘緊缺型人才2人備考筆試試題及答案解析
- 吉安市農(nóng)業(yè)農(nóng)村發(fā)展集團(tuán)有限公司及下屬子公司2025年第二批面向社會(huì)公開(kāi)招聘模擬筆試試題及答案解析
- 自貢市自流井區(qū)人力資源和社會(huì)保障局2025年下半年自流井區(qū)事業(yè)單位公開(kāi)選調(diào)工作人員(17人)備考考試試題及答案解析
- 2025重慶滬渝創(chuàng)智生物科技有限公司社會(huì)招聘5人備考筆試題庫(kù)及答案解析
- 2025廣西欽州市靈山縣自然資源局招聘公益性崗位人員1人備考筆試題庫(kù)及答案解析
- 設(shè)計(jì)公司生產(chǎn)管理辦法
- 企業(yè)管理綠色管理制度
- 2025年人工智能訓(xùn)練師(三級(jí))職業(yè)技能鑒定理論考試題庫(kù)(含答案)
- 2025北京八年級(jí)(上)期末語(yǔ)文匯編:名著閱讀
- 小學(xué)美術(shù)教育活動(dòng)設(shè)計(jì)
- 蜜雪冰城轉(zhuǎn)讓店協(xié)議合同
- 貸款項(xiàng)目代理協(xié)議書(shū)范本
- 低分子肝素鈉抗凝治療
- 重慶城市科技學(xué)院《電路分析基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 乳腺癌全程、全方位管理乳腺癌患者依從性及心理健康管理幻燈
- 2024-2025學(xué)年福建省三明市高二上冊(cè)12月月考數(shù)學(xué)檢測(cè)試題(附解析)
評(píng)論
0/150
提交評(píng)論