python字典保存為json后讀取出錯(cuò)問題及解決
python字典保存為json后讀取出錯(cuò)
json.load()讀取json文件數(shù)據(jù)時(shí),報(bào)錯(cuò):XXXXXXXXX。
是因?yàn)樵趈son文件中的引號(hào)為單引號(hào),json.load()只能識(shí)別雙引號(hào)。
避免報(bào)錯(cuò)的方式有三種
1、從保存文件時(shí)入手,剛開始就避免json文件中寫入單引號(hào)。
json文件之所以寫入單引號(hào),大概率是在寫入數(shù)據(jù)時(shí),直接str(dict_data)字典轉(zhuǎn)字符串,這種遺留問題就是不能用json.load()讀取,寫的時(shí)候應(yīng)該用:json.dump(dict_data,file),一次寫入到j(luò)son文件中的字典是雙引號(hào)的。
2、如果不想更換寫入方式,或者數(shù)據(jù)是別人的,難么可以換讀取方式。使用內(nèi)置模塊ast的literal_eval方法:
import ast ast.literal_eval(string)
3、直接使用python內(nèi)置函數(shù)eval(string)
2和3的方法可以直接把字符串形式的json數(shù)據(jù)轉(zhuǎn)為字典。
json文件轉(zhuǎn)為str出現(xiàn)中文亂碼問題
原來的代碼是這樣的
with open(fileName,'w',encoding='utf-8') as f: json.dump(AllResume,f)
當(dāng)然用
temp = json.dumps(AllResume) with open(fileName,'w',encoding='utf-8') as f: f.write(temp) f.close()
得到的也是一樣的結(jié)果。
出現(xiàn)的結(jié)果如下:
這是因?yàn)閖son.dumps或者json.dump 序列化時(shí)對(duì)中文默認(rèn)使用的ascii編碼,想輸出真正的中文需要指定ensure_ascii=False:
with open(fileName,'w',encoding='utf-8') as f: json.dump(AllResume,f,ensure_ascii=False)
此時(shí)得到的結(jié)果才是:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python中使用ctypes調(diào)用so傳參設(shè)置遇到的問題及解決方法
這篇文章主要介紹了python中使用ctypes調(diào)用so傳參設(shè)置,本文較詳細(xì)的給大家介紹了遇到問題及解決方案,需要的朋友可以參考下2019-06-06Python?基于TCP?傳輸協(xié)議的網(wǎng)絡(luò)通信實(shí)現(xiàn)方法
網(wǎng)絡(luò)編程指在網(wǎng)絡(luò)環(huán)境中,如何實(shí)現(xiàn)不在同一物理位置中的計(jì)算機(jī)之間進(jìn)行數(shù)據(jù)通信,本文重點(diǎn)給大家介紹Python?基于TCP?傳輸協(xié)議的網(wǎng)絡(luò)通信實(shí)現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧2022-02-02Python-OpenCV中的cv2.inpaint()函數(shù)的使用
大多數(shù)人會(huì)在家里放一些舊的退化照片,上面有一些黑點(diǎn),一些筆畫等。你有沒有想過恢復(fù)它?本文就來介紹一下方法,感興趣的可以了解一下2021-06-06Python將PDF轉(zhuǎn)換為HTML的實(shí)現(xiàn)方法
PDF文件是共享和分發(fā)文檔的常用選擇,但提取和再利用PDF文件中的內(nèi)容可能會(huì)非常麻煩,本文重點(diǎn)介紹如何在Python程序中將PDF轉(zhuǎn)換為HTML,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2024-03-03Python超越函數(shù)積分運(yùn)算以及繪圖實(shí)現(xiàn)代碼
今天小編就為大家分享一篇Python超越函數(shù)積分運(yùn)算以及繪圖實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11python re正則表達(dá)式模塊(Regular Expression)
Python 的 re 模塊(Regular Expression 正則表達(dá)式)提供各種正則表達(dá)式的匹配操作,在文本解析、復(fù)雜字符串分析和信息提取時(shí)是一個(gè)非常有用的工具.2014-07-07python簡(jiǎn)單實(shí)例訓(xùn)練(21~30)
上篇文章給大家介紹了python簡(jiǎn)單實(shí)例訓(xùn)練的1-10,這里繼續(xù)為大家介紹python的一些用法,希望大家每個(gè)例子都打出來測(cè)試一下2017-11-11