如何使用Python JSON解析和轉(zhuǎn)換數(shù)據(jù)
JSON 是一種用于存儲(chǔ)和交換數(shù)據(jù)的語(yǔ)法。JSON 是文本,使用 JavaScript 對(duì)象表示法編寫(xiě)。
Python 中的 JSON
Python 有一個(gè)內(nèi)置的 json 包,可用于處理 JSON 數(shù)據(jù)。
示例:導(dǎo)入 json 模塊:
import json
解析 JSON - 從 JSON 轉(zhuǎn)換為 Python
如果您有一個(gè) JSON 字符串,可以使用 json.loads() 方法來(lái)解析它。結(jié)果將是一個(gè) Python 字典。
示例:從 JSON 轉(zhuǎn)換為 Python:
import json # 一些 JSON: x = '{ "name":"John", "age":30, "city":"New York"}' # 解析 x: y = json.loads(x) # 結(jié)果是一個(gè) Python 字典: print(y["age"])
從 Python 轉(zhuǎn)換為 JSON
如果您有一個(gè) Python 對(duì)象,可以使用 json.dumps() 方法將其轉(zhuǎn)換為 JSON 字符串。
示例:從 Python 轉(zhuǎn)換為 JSON:
import json # 一個(gè) Python 對(duì)象(字典): x = { "name": "John", "age": 30, "city": "New York" } # 轉(zhuǎn)換為 JSON: y = json.dumps(x) # 結(jié)果是一個(gè) JSON 字符串: print(y)
您可以將以下類型的 Python 對(duì)象轉(zhuǎn)換為 JSON 字符串:
- dict(字典)
- list(列表)
- tuple(元組)
- string(字符串)
- int(整數(shù))
- float(浮點(diǎn)數(shù))
- True(真)
- False(假)
- None(空)
示例:將 Python 對(duì)象轉(zhuǎn)換為 JSON 字符串,并打印值:
import json print(json.dumps({"name": "John", "age": 30})) print(json.dumps(["apple", "bananas"])) print(json.dumps(("apple", "bananas"))) print(json.dumps("hello")) print(json.dumps(42)) print(json.dumps(31.76)) print(json.dumps(True)) print(json.dumps(False)) print(json.dumps(None))
當(dāng)您從 Python 轉(zhuǎn)換為 JSON 時(shí),Python 對(duì)象將被轉(zhuǎn)換為 JSON(JavaScript)等效對(duì)象:
Python JSON
dict 對(duì)象(Object)
list 數(shù)組(Array)
tuple 數(shù)組(Array)
str 字符串(String)
int 數(shù)字(Number)
float 數(shù)字(Number)
True true
False false
None null
示例:將包含所有合法數(shù)據(jù)類型的 Python 對(duì)象轉(zhuǎn)換為 JSON 字符串:
import json x = { "name": "John", "age": 30, "married": True, "divorced": False, "children": ("Ann","Billy"), "pets": None, "cars": [ {"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1} ] } print(json.dumps(x))
格式化結(jié)果,上面的示例打印了一個(gè) JSON 字符串,但它不太容易閱讀,沒(méi)有縮進(jìn)和換行。json.dumps() 方法具有參數(shù),以使結(jié)果更易閱讀:
示例:使用 indent 參數(shù)來(lái)定義縮進(jìn)的數(shù)量:
json.dumps(x, indent=4)
您還可以定義分隔符,默認(rèn)值為 (", ", ": "),這意味著使用逗號(hào)和空格來(lái)分隔每個(gè)對(duì)象,使用冒號(hào)和空格來(lái)分隔鍵和值:
示例:使用 separators 參數(shù)來(lái)更改默認(rèn)分隔符:
json.dumps(x, indent=4, separators=(". ", " = "))
對(duì)結(jié)果進(jìn)行排序,json.dumps() 方法具有參數(shù),可以對(duì)結(jié)果中的鍵進(jìn)行排序:
示例:使用 sort_keys 參數(shù)來(lái)指定結(jié)果是否應(yīng)按鍵排序:
json.dumps(x, indent=4, sort_keys=True)
最后
到此這篇關(guān)于使用Python JSON解析和轉(zhuǎn)換數(shù)據(jù)的文章就介紹到這了,更多相關(guān)python json轉(zhuǎn)換數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python轉(zhuǎn)換wrf輸出的數(shù)據(jù)為網(wǎng)頁(yè)可視化json格式
- python讀取json數(shù)據(jù)還原表格批量轉(zhuǎn)換成html
- 基于python實(shí)現(xiàn)把json數(shù)據(jù)轉(zhuǎn)換成Excel表格
- 使用python將mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換為json數(shù)據(jù)的方法
- 把JSON數(shù)據(jù)格式轉(zhuǎn)換為Python的類對(duì)象方法詳解(兩種方法)
- python3 json數(shù)據(jù)格式的轉(zhuǎn)換(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互轉(zhuǎn)換)
- 利用python將json數(shù)據(jù)轉(zhuǎn)換為csv格式的方法
相關(guān)文章
conda創(chuàng)建pytorch環(huán)境報(bào)錯(cuò)
這篇文章主要介紹了conda創(chuàng)建pytorch環(huán)境報(bào)錯(cuò),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04Python基于PyGraphics包實(shí)現(xiàn)圖片截取功能的方法
這篇文章主要介紹了Python基于PyGraphics包實(shí)現(xiàn)圖片截取功能的方法,涉及PyGraphics包的安裝及基于PyGraphics包實(shí)現(xiàn)圖片的打開(kāi)、讀取、截取等相關(guān)操作技巧,需要的朋友可以參考下2017-12-12python處理json文件的四個(gè)常用函數(shù)
這篇文章主要介紹了python處理json文件的四個(gè)常用函數(shù),主要包括json.load()和json.dump()及json.loads()還有json.dumps(),需要的朋友可以參考一下2022-07-07高效測(cè)試用例組織算法pairwise之Python實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇高效測(cè)試用例組織算法pairwise之Python實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07Python中dataclass庫(kù)實(shí)例詳解
這篇文章主要介紹了Python中dataclass庫(kù),合理使用dataclass將會(huì)大大減輕開(kāi)發(fā)中的負(fù)擔(dān),將我們從大量的重復(fù)勞動(dòng)中解放出來(lái),這既是dataclass的魅力,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2022-09-09python 19個(gè)值得學(xué)習(xí)的編程技巧
這篇文章主要介紹了python 19個(gè)值得學(xué)習(xí)的編程技巧,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-08-08Pandas之DataFrame對(duì)象的列和索引之間的轉(zhuǎn)化
這篇文章主要介紹了Pandas之DataFrame對(duì)象的列和索引之間的轉(zhuǎn)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06Win10下python 2.7.13 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Win10下python 2.7.13 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09使用Python實(shí)現(xiàn)批量修改文件的修改日期功能
在日常的文件管理中,您可能需要批量修改文件的修改日期,比如,您可能希望將某個(gè)文件夾中的所有文件的修改日期隨機(jī)設(shè)置為6到8月份之間的日期,這在數(shù)據(jù)整理中可能非常有用,本文將詳細(xì)介紹如何使用Python實(shí)現(xiàn)這一功能,需要的朋友可以參考下2024-10-10