Python json模块 - Python零基础入门教程
目錄
- 一.前言
- 二.python json 模塊常用函數(shù)
- 三.json 轉(zhuǎn) Python 字典 dict
- 四.Python 字典 dict 轉(zhuǎn) json
- 五.關(guān)于 json.dump 和 json.load
- 六.猜你喜歡
零基礎(chǔ) Python 學(xué)習(xí)路線推薦 : Python 學(xué)習(xí)目錄 >> Python 基礎(chǔ)入門
一.前言
JSON 的全稱是 JavaScript Object Notation,即 JavaScript 對(duì)象符號(hào),它是一種輕量級(jí)、跨平臺(tái)、跨語(yǔ)言的數(shù)據(jù)交換格式,其設(shè)計(jì)意圖是把所有事情都用設(shè)計(jì)的字符串來(lái)表示,這樣既方便在互聯(lián)網(wǎng)上傳遞信息,也方便人進(jìn)行閱讀。
JSON 主要在類似于 C 的編程語(yǔ)言中廣泛使用,這些語(yǔ)言包括 C、C++、C#、Java、JavaScript、Perl、Python 等。JSON 提供了多種語(yǔ)言之間完成數(shù)據(jù)交換的能力,因此,JSON 也是一種非常理想的數(shù)據(jù)交換格式。
二.python json 模塊常用函數(shù)
json 模塊提供了對(duì) JSON 的支持,它既包含了將 JSON 字符串恢復(fù)成 Python 對(duì)象的函數(shù),也提供了將 Python 對(duì)象轉(zhuǎn)換成 JSON 字符串的函數(shù)。
- json.dumps — 對(duì)數(shù)據(jù)進(jìn)行編碼,形成 json 格式的數(shù)據(jù);
- json.loads — 將 json 格式的數(shù)據(jù)解碼,轉(zhuǎn)換為 Python 字典 dict ;
三.json 轉(zhuǎn) Python 字典 dict
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說(shuō)編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python json模塊.py @Time:2021/04/01 07:37 @Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""import jsondata_str = '{"url": "www.shuopython.com", "name": "猿說(shuō)python", "contents": "python教程"}' data_dict = json.loads(data_str) print(data_dict) print(type(data_dict))''' 輸出結(jié)果: {'url': 'www.shuopython.com', 'name': '猿說(shuō)python', 'contents': 'python教程'} <class 'dict'> '''注意:data_str 是 json 字符串,并非字典 dict 也并非字符串 string;
四.Python 字典 dict 轉(zhuǎn) json
在使用 dump / dumps 時(shí)可能會(huì)使用到以下參數(shù):
-
skipkey:默認(rèn)為 False,當(dāng) dict 對(duì)象里的數(shù)據(jù)不是 Python 的基本數(shù)據(jù)類型;(str,unicode,int,long,float,bool,None)時(shí),當(dāng) skipkey 為 False,就會(huì)報(bào)錯(cuò),如果 skipkey 為 True ,則可以跳過(guò)這類 key ;
-
indent:如果填 0 或者不填,則按照一行進(jìn)行打印,否則按照 indent 的數(shù)值顯示前面的空格(正整數(shù)形式);
-
separators:分隔符,默認(rèn)為“(‘,’,’:’)”,它表示 key 之間用“,”隔開(kāi),key 和 value 之間用“:”隔開(kāi);
-
encoding:編碼格式,默認(rèn)值是 UTF-8;
-
sort_keys:對(duì) key、value 進(jìn)行排序,默認(rèn)值是 False ,即不排序;
-
ensure_ascii:默認(rèn)為 True,如果 dict 對(duì)象里含有 none-ASCII 的字符,則顯示\uXX 的格式,如果為 False,則能正常顯示出來(lái)(解決中文亂碼問(wèn)題);
五.關(guān)于 json.dump 和 json.load
相對(duì)于上面所講的 dumps 和 loads 來(lái)說(shuō),dump 和 load 函數(shù)的功能類似,只不過(guò)前者是用來(lái)處理字符串類型的,而后者是用于處理文件類型的,如下所示:
# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說(shuō)編程 @Blog(個(gè)人博客地址): www.codersrc.com @File:Python json模塊.py @Time:2021/04/01 07:37 @Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累!"""import jsondata = {'str3':'xyz','str2' :'efgh','str1':'abcd'} with open(' data. txt', '', encoding='utf-8') as f:json.dump(data, f, indent=4) # f. write (json.dumps (data, indent=4)) #和上面的效果一樣with open(' data. txt', 'r') as f:d2 = json.load(f) #d2 = json.loads (f. read())#和上面的效果一樣六.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說(shuō)編程 ? Python json 模塊
總結(jié)
以上是生活随笔為你收集整理的Python json模块 - Python零基础入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python bytearray/byt
- 下一篇: BugkuCTF-MISC题where