<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
經常在Python中對JSON格式的檔案進行操作,今天對這些操作做一個總結
首先,需要匯入json庫import json
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
什麼是json字串?
相較於JSON物件,JSON字串(可以理解為一個普通的字串但擁有特殊的格式 這種格式可以用來轉換回JSON物件)可以更加方便的在函數之間傳遞。
JSON物件中只能使用雙引號""
而python物件字典中可以使用單引號''
將JSON字串轉化為 Python 欄位的資料型別。
loads:針對記憶體物件,將string轉換為dict (將string轉換為dict)
def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw): """Deserialize ``s`` (a ``str`` instance containing a JSON document) to a Python object."""
json.loads 用於解碼 JSON 資料。該函數返回 Python 欄位的資料型別。
jsonData='{"u6d4bu8bd5": 12345, "u5185u5bb9": ["u6211u4e5fu4e0du77e5u9053u6211u8981u5199u4ec0u4e48", "123"]}' print(jsonData) print(type(jsonData)) # <class 'str'> 理解為json字串 py_type_info=json.loads(jsonData) print(py_type_info) print(type(py_type_info)) # <class 'dict'> # 輸出: #{"測試": 12345, "內容": ["我也不知道我要寫什麼", "123"]} # <class 'str'> # {'測試': 12345, '內容': ['我也不知道我要寫什麼', '123']} # <class 'dict'>
可以從上面輸出中看到 JSON 的雙引號 與python dict的單引號
json.load用於讀取.json格式的檔案,將JSON檔案 轉化成Python欄位的資料型別
load:針對檔案控制程式碼,將json格式的字元轉換為dict,從檔案中讀取 (將string轉換為dict)
def load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw): """Deserialize ``fp`` (a ``.read()``-supporting file-like object containing a JSON document) to a Python object."""
with open('abc.json','r',encoding='utf-8')as f: py_type_info = json.load(f) print(py_type_info)
with open(os.path.join("/home/output/compare", "cmp{}.json".format(i)), "r", encoding='utf-8') as f: cmpInfo=json.load(f)
參考資料:Pythonh中用json.load() json.loads()載入json資料的方法
提醒:根據JSON規範(http://www.json.org, RFC 4627, RFC 7159),不支援註釋。
但如果真的不幸遇到json檔案中有 // 類似的註釋如何解決?
def load_json(path): import json lines = [] # 第一步:定義一個列表, 開啟檔案 with open(path) as f: for row in f.readlines(): # 第二步:讀取檔案內容 if row.strip().startswith("//"): # 第三步:對每一行進行過濾 continue lines.append(row) # 第四步:將過濾後的行新增到列表中. return json.loads("n".join(lines)) #將列表中的每個字串用某一個符號拼接為一整個字串,用json.loads()函數載入,這樣就大功告成啦!!
json.dumps 用於將 Python 物件 編碼成 JSON 字串。
注意:這個函數產生的是字串
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
j1={'測試':12345,'內容':['我也不知道我要寫什麼','123']} j1_str=json.dumps(j1) print(j1) # 輸出:{'測試': 12345, '內容': ['我也不知道我要寫什麼', '123']}
將Python物件編碼成JSON檔案
j1={'測試':12345,'內容':['我也不知道我要寫什麼','123']} with open('abc.json','w') as f: json.dump(j1,f)
abc.json中寫入了Python物件j1編碼出的json格式資訊:
{"u6d4bu8bd5": 12345, "u5185u5bb9": ["u6211u4e5fu4e0du77e5u9053u6211u8981u5199u4ec0u4e48", "123"]}
到此這篇關於python中json操作之json.loads、json.load、json.jumps及json.jump用法總結的文章就介紹到這了,更多相關python json操作用法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45