Python如何操作Json?本文也許能幫到您!

2021-01-07 程式設計師編程學習

Json(JavaScript Object Notation)它是一種輕量級的數據交換格式,具有數據格式簡單,讀寫方便易懂等很多優點。許多主流的程式語言都在用它來進行前後端的數據傳輸,大大的簡化了伺服器和客戶端的開發工作量。相對於XML來說,更加的輕量級,更方便解析,因此許多開發者都遵循Json格式來進行數據的傳輸和交換。今天我們詳細介紹一下Python在Json的編解碼方面的知識。

json的數據格式

在json中,遵循「鍵值對」的這樣一種方式,比如:「{"name":"tom"}」,就是一個json格式的數據,json的格式歸納下來,一般有以下幾點:

對象通過鍵值對表現;鍵通過雙引號包裹,後面跟冒號「:」,然後跟該鍵的值;值可以是字符串、數字、數組等數據類型;對象與對象之間用逗號隔開;「{}」用來表達對象;「[]」用來表達數組;

我們看一個略為複雜一點的例子:

上例則是一個典型的json格式的數據,強大的Python提供了一個「json」模塊,可以方便的將各種零散的數據通過模塊的內置函數編碼形成一個json格式的數據,也可以將一個json格式的數據解碼形成自己需要的數據,非常好用,下面我們就來介紹一下。

json.dumps()

json模塊裡的dumps函數是對數據進行編碼,形成json格式的數據,我們看一下下面的例子:

通過輸出的結果很容易看出,通過dumps方法使字典轉換成為了json格式,雖然它們非常相似。其中,在dumps裡的參數「sort_keys=True」,使得輸出json後對key和value進行0~9、a~z的順序排序,如果不填,則按照無序排列。有時候,通過排序可以方便地比較json中的數據,因此,適當的排序是很有必要的。

此外,「Indent」參數表示縮進的意思,它可以使得輸出的Json看起來更加整齊好看,可讀性更強,例如:

下面列舉一下dumps()的可填參數:

skipkey:默認為False,當dict對象裡的數據不是Python的基本數據類型;(str,unicode,int,long,float,bool,None)時,當skipkey為False,就會報錯,如果skipkey為True,則可以跳過這類key;indent:如果填0或者不填,則按照一行進行列印,否則按照indent的數值顯示前面的空格(正整數形式);separators:分隔符,默認為「(',',':')」,它表示key之間用「,」隔開,key和value之間用「:」隔開;encoding:編碼格式,默認值是UTF-8;sort_keys:對key、value進行排序,默認值是False,即不排序;ensure_ascii:默認為True,如果dict對象裡含有none-ASCII的字符,則顯示\uXX的格式,如果為False,則能正常顯示出來;

json.loads()

和dumps相反,loads函數則是將json格式的數據解碼,轉換為Python字典,我們看一下下面的例子:

有時候,輸出結果遇到中文的時候,會出現編碼格式不一樣的情況,顯示出為Unicode的編碼格式,使得不易讀懂,解決辦法是添加參數「encoding」參數,即上面的改寫成這樣:d1 = json.loads(data1,encoding='utf-8')即可。

json.dump()和 json.load()

相對於上面所講的dumps和loads來說,dump和load函數的功能類似,只不過前者是用來處理字符串類型的,而後者是用於處理文件類型的,如下所示:

上例列舉出了json的四個方法:dumps()和dump()、loads()和load()的簡單使用方法,可見,Python對於json的處理相當方便,不像c++那樣(誰用誰知道)。

相關焦點

  • 如何使用Python 和 Pandas讀寫JSON文件
    在下一部分中,我們將使用Pandas的 json方法將JSON文件加載到Pandas 數據幀中。在這裡,我們將學習如何從本地和一個URL讀取JSON文件,以及如何使用Pandas讀取一個嵌套的JSON文件。最後,作為獎勵,我們還將學習如何操作Pandas數據幀中的數據、重命名列和使用Seaborn對數據繪製圖表。什麼是JSON文件?
  • Python 讀取 JSON 數據的騷操作
    其中兩個主要的函數是 json.dumps() 和 json.loads() 下面演示如何將一個 Python 數據結構轉換為 JSONimport jsondata = {'name' : 'ACME','shares' : 100,'price' : 542.23}json_str = json.dumps(data)下面演示如何將一個
  • 乾貨|如何利用Python處理JSON格式的數據,建議收藏!
    本文轉載自【微信公眾號:數據分析與籃球,ID:dylanxia2019】經微信公眾號授權轉載,如需轉載與原文作者聯繫JSON數據格式在我們的日常工作中經常會接觸到,無論是做爬蟲開發還是一般的數據分析處理,本文小編就來分享一下當數據接口是JSON
  • 如何利用Python處理JSON格式的數據,建議收藏!!!
    作者:俊欣來源:數據分析與籃球JSON數據格式在我們的日常工作中經常會接觸到
  • python如何編碼解碼解析json對象
    前言json是一種以鍵值對形式存在的輕量級的數據結構,和python中的字典類型具有相同的表現結構。使用 JSON 函數需要導入 json 庫:import json。在Java中我們知道json有jsonObject和jsonArray,且可以通過String、map等相互轉換,那麼在python中,json對象是如何來讀取解析的呢?python解析json對象1.json.dumpsjson.dumps用於將 Python 對象編碼成 JSON 字符串。
  • Python 標準庫之 JSON
    基本操作JSON 模塊相比於 XML 來說真的是簡單多了:>>> import json>>> json.'c++'),'age':23}]>>> data[{'name': 'rocky', 'like': ('python', 'c++'), 'age': 23}]>>> data_json = json.dumps(data)>>> data_json'[{"name": "rocky", "like":
  • 用 Python 操作 JSON 類型數據詳解
    表 JSON類型向Python原始類型的轉化對照表3、序列化操作實例import jsondata ={'name':"wangwu" , 'lang': ('python' ,'java'), 'age':20 }data_json = json.dumps( data )print( data)# 輸出結果為[{'name': 'wangwu', 'lang': ('python', 'java'), 'age': 20}]print( data_json )# 輸出結果為 [{"name": "wangwu",
  • Python處理json總結
    跟python中的字典看起來很像,兩者之間的區別?1)json的key只能是字符串,dict的key可以是任何可hash的對象,例如:字符串、數字、元組等;2)字典是一種數據結構,json是一種數據格式;字典有很多內置函數,有多種調用方法,而json是數據打包的一種格式,並不像字典具備操作性;3)json的字符串強制用雙引號,dict的字符串可以用單引號、雙引號;一般而言,我們會把json轉化為python
  • Python 如何將字符串轉換成 json ?
    /2.7/lib/python2.7/json/__init__.pyc in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)    336             parse_int is None and parse_float
  • python教程實戰,json、csv等讀寫
    python教程實戰,json、csv等讀寫JSON的全稱是」JavaScript Object Notation」,意思是JavaScript
  • 4個小竅門,讓你在Python中高效使用JSON!
    本文將主要分享以下內容:· 如何載入、編寫JSON?· 如何在命令行上優化、校驗JSON?· 如何通過使用JMESPath對JSON文檔執行高級查詢?1. JSON解碼Python自帶一個功能強大、內容豐富的JSON庫。
  • python解析json方法
    最近在學ES,往裡面灌數據,ES默認格式是json,因此需要用到python去處理json格式。
  • 【python】讀取json文件
    JSON在python中分別由list和dict組成。這是用於序列化的兩個模塊:json: 用於字符串和python數據類型間進行轉換pickle: 用於python特有的類型和python的數據類型間進行轉換Json模塊提供了四個功能:dumps、dump、loads、loadpickle模塊提供了四個功能:dumps、dump、loads、load細節注意:
  • python讀寫json文件
    輸出結果,最外圍是一個字典,而字典的值既可以是基本的數據類型,比如數值,字符串,又可以是列表,字典等數據結構,相互嵌套,就構成了整個json文件。對於json文件的讀寫,也稱之為json的編碼和解碼。所謂解碼,就是將文字格式的json轉換為程式語言中的對象,編碼則相反,將程式語言中的對象轉換為json格式的字符串。
  • Python中json模塊的使用介紹
    json裡要使用雙引號表示字符串# 在js語言中,一切都是對象,因此,任何支持的類型都可以通過json 來表示,例如字符串、數字、對象、數組等# 在python中,有專門處理json格式的模塊:json模塊 和 picle模塊# Json 模塊提供了四個方法:dumps、dump、loads、load# pickle 模塊也提供了四個功能:dumps
  • 如何利用Python處理JSON格式的數據接口(詳細版)
    本篇將對數據接口為JSON格式時,如何進行數據處理進行詳細的介紹,內容分如下兩個部分:JSON(JavaScript Object Notation, JS 對象簡譜)是一種輕量級的數據交換格式。它基於 ECMAScript的一個子集,採用完全獨立於程式語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得JSON成為理想的數據交換語言。
  • Python入門進階教程-JSON操作
    JSON數據類型當程序把 JSON 對象或 JSON 字符串轉換成 Python 對象時,從 JSON 類型到 Python 類型的轉換關係如下所示:JSON類型Python類型JSON 類型Python 類型對象(object)字典(dict)數組(array列表(list)字符串(string)
  • 超詳細的Python文件操作知識
    為了方便大家,這裡對各種文件操作的知識進行匯總。一文在手,無須它求!來一起學習吧。--- 以下是正文 ---本文分七個模塊為大家詳細介紹python中文件操縱相關知識,閒話少說,讓我們開始!Python中提供了StringIO和BytesIO這兩個類將字符串數據和二進位數據寫入到內存裡。StringIO可以將字符串寫入到內存中,像操作文件一下操作字符串。
  • 手把手教你如何在VSCode裡調試python
    本文僅介紹Python特有的注意事項,主要是特定於Python的調試配置,包括特定應用程式類型和遠程調試的必要步驟。初始化配置配置在調試會話期間驅動VS Code的行為。 配置在launch.json文件中定義,該文件存儲在工作區的.vscode文件夾中。注意為了更改調試配置,您的代碼必須存儲在一個文件夾中。
  • python的模塊和序列
    前言概要本章節主要講述python中的模塊和序列的概念以及如何使用模塊和序列化方面的知識。模塊的概念在python中有個關鍵詞是import,代表的是導入、加載的意思。通常import加載的模塊分為四個通用類別:使用python語言編寫的代碼(後綴名為py的文件)已被編譯為共享庫或DLL的C或C++的擴展使用C編寫並連接到python解釋器的內置模塊