溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python與json數據的交互實例分析

發布時間:2022-07-21 13:53:20 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

今天小編給大家分享一下python與json數據的交互實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一 什么是json

json是一種獨立于編程語言和平臺的輕量級數據交換方式。和xml一樣,只是一種數據交換方式,與編程語言沒有依賴關系。各種支持json數據格式的編程語言,都會有對其進行解析的方法。xml和json都用于數據存儲和數據交換,但是現在json越來越流行,用的比xml多。json較xml的優點如下

  • xml需要用xml解析器來進行,而json則不用(主要區別)。

  • json不需要寫標簽,較簡短。

  • json的讀寫速度更快

二 json語法格式

{
    "name": "安先生",
    "age": "24"
}

如上,json數據是以key:value 的形式保存在一對大括號{}中的,多個數據用逗號分隔,和python中的字典非常相像,但是json數據中的key和value全都是用雙引號包起來的。

三 python與json的交互

python中提供了四種與json數據打交道的方法,即json.loads(),json.load(),json.dumps()和json.dump(),下面一一進行介紹。

1. json.loads()

json.loads(): 將json對象轉換為python對象,一般是將字符串轉為python的字典dict。

import json

json_data = '{"name": "安先生", "age": "24"}'
print(type(json_data))
print(json_data)
#json.loads()將json對象轉為python對象
py_data = json.loads(json_data)
print(type(py_data))
print(py_data)

輸出:

>>>
<class 'str'>
{"name": "安先生", "age": "24"}
<class 'dict'>
{'name': '安先生', 'age': '24'}

2. json.load()

json.load(): 讀取json文件(解碼)

import json

json_data = open('../練習文件/json.json', 'r', encoding='utf-8')
print(type(json_data))

data = json.load(json_data)
print(type(data))
print(data)

>>>
<class '_io.TextIOWrapper'>
<class 'dict'>
{'name': '安先生', 'age': '24', 'job': '軟件測試'}

3. json.dumps()

json.dumps(): 將python對象轉為json對象

import json

py_data = {"name": "張三", "age": 24, "job": "法外狂徒"}
print(type(py_data))
print(py_data)
#indent控制縮進,ensure_ascii控制編碼
json_data = json.dumps(py_data, indent=4, ensure_ascii=False)
print(type(json_data))
print(json_data)

其中indent參數是控制縮進的,ensure_ascii改變默認編碼(Unicode)

<class 'dict'>
{'name': '張三', 'age': 24, 'job': '法外狂徒'}
<class 'str'>
{
    "name": "張三",
    "age": 24,
    "job": "法外狂徒"
}

4. json.dump()

json.dump(): 向json文件寫數據(編碼)

import json

py_data = {"name": "張三", "age": 24, "job": "法外狂徒"}
#先用json.dumps()將python對象轉為json對象
json_data = json.dumps(py_data)
with open('../練習文件/json.json', 'w', encoding='utf-8') as f:
    json.dump(json_data, f)

#讀取數據
msg = open('../練習文件/json.json', 'r')
msg = json.load(msg)
print(msg)

寫入的json文件數據:

python與json數據的交互實例分析

python與json數據的交互實例分析

可以看到,讀寫的數據和我們想要的不一致,這是因為json.dump()默認寫的是Unicode編碼的數據,中文是不在Unicode編碼中的,所以顯示的時候就不會以中形式顯示,不過可以用json.dump()的ensure_ascii參數來控制,將其設置為False,

如下:

import json

py_data = {"name": "張三", "age": "24", "job": "法外狂徒"}

#轉換成json對象時,編碼默認為Unicode,ensure_ascii=False 取消默認編碼
with open('../練習文件/json.json', 'w', encoding='utf-8') as f:
    json.dump(py_data, f, indent=4, ensure_ascii=False,)
#讀取數據
msg = open('../練習文件/json.json', 'r', encoding='utf-8')
msg = json.load(msg)
print(msg)

結果如下:

python與json數據的交互實例分析

>>>
{'name': '張三', 'age': '24', 'job': '法外狂徒'}

以上就是“python與json數據的交互實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女