亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python與json數(shù)據(jù)的交互詳情

 更新時(shí)間:2022年07月21日 10:21:32   作者:搬磚,贊路費(fèi)  
這篇文章主要介紹了python與json數(shù)據(jù)的交互詳情,json是一種獨(dú)立于編程語(yǔ)言和平臺(tái)的輕量級(jí)數(shù)據(jù)交換方式,更多相關(guān)內(nèi)容介紹,需要的朋友可以參考一下

一 什么是json

json是一種獨(dú)立于編程語(yǔ)言和平臺(tái)的輕量級(jí)數(shù)據(jù)交換方式。和xml一樣,只是一種數(shù)據(jù)交換方式,與編程語(yǔ)言沒(méi)有依賴關(guān)系。各種支持json數(shù)據(jù)格式的編程語(yǔ)言,都會(huì)有對(duì)其進(jìn)行解析的方法。xml和json都用于數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)交換,但是現(xiàn)在json越來(lái)越流行,用的比xml多。json較xml的優(yōu)點(diǎn)如下

  • xml需要用xml解析器來(lái)進(jìn)行,而json則不用(主要區(qū)別)。
  • json不需要寫(xiě)標(biāo)簽,較簡(jiǎn)短。
  • json的讀寫(xiě)速度更快

二 json語(yǔ)法格式

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

如上,json數(shù)據(jù)是以key:value 的形式保存在一對(duì)大括號(hào){}中的,多個(gè)數(shù)據(jù)用逗號(hào)分隔,和python中的字典非常相像,但是json數(shù)據(jù)中的key和value全都是用雙引號(hào)包起來(lái)的。

三 python與json的交互

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

1. json.loads()

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

import json

json_data = '{"name": "安先生", "age": "24"}'
print(type(json_data))
print(json_data)
#json.loads()將json對(duì)象轉(zhuǎn)為python對(duì)象
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('../練習(xí)文件/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': '軟件測(cè)試'}

3. json.dumps()

json.dumps(): 將python對(duì)象轉(zhuǎn)為json對(duì)象

import json

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

其中indent參數(shù)是控制縮進(jìn)的,ensure_ascii改變默認(rèn)編碼(Unicode)

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

4. json.dump()

json.dump(): 向json文件寫(xiě)數(shù)據(jù)(編碼)

import json

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

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

寫(xiě)入的json文件數(shù)據(jù):

可以看到,讀寫(xiě)的數(shù)據(jù)和我們想要的不一致,這是因?yàn)閖son.dump()默認(rèn)寫(xiě)的是Unicode編碼的數(shù)據(jù),中文是不在Unicode編碼中的,所以顯示的時(shí)候就不會(huì)以中形式顯示,不過(guò)可以用json.dump()的ensure_ascii參數(shù)來(lái)控制,將其設(shè)置為False,

如下:

import json

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

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

結(jié)果如下:

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

到此這篇關(guān)于python與json數(shù)據(jù)的交互詳情的文章就介紹到這了,更多相關(guān)python json數(shù)據(jù)交互內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)坦克大戰(zhàn)

    python實(shí)現(xiàn)坦克大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)坦克大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • python中的屬性管理機(jī)制詳解

    python中的屬性管理機(jī)制詳解

    這篇文章主要介紹了python中的屬性管理機(jī)制,主要包括私有屬性和屬性限制-__slots__方法,文中詳細(xì)介紹了python中如何去聲明變量的相關(guān)知識(shí),需要的朋友可以參考下
    2022-06-06
  • python實(shí)現(xiàn)按首字母分類查找功能

    python實(shí)現(xiàn)按首字母分類查找功能

    這篇文章主要介紹了python實(shí)現(xiàn)按首字母分類查找功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Python實(shí)現(xiàn)在圖像中隱藏二維碼的方法詳解

    Python實(shí)現(xiàn)在圖像中隱藏二維碼的方法詳解

    隱寫(xiě)是一種類似于加密卻又不同于加密的技術(shù)。這篇文章主要介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)在圖像中隱藏二維碼功能,感興趣的可以了解一下
    2022-09-09
  • 利用Python?爬取股票實(shí)時(shí)數(shù)據(jù)詳情

    利用Python?爬取股票實(shí)時(shí)數(shù)據(jù)詳情

    這篇文章主要介紹了利用Python?爬取股票實(shí)時(shí)數(shù)據(jù)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • Pycharm遠(yuǎn)程調(diào)試原理及具體配置詳解

    Pycharm遠(yuǎn)程調(diào)試原理及具體配置詳解

    這篇文章主要介紹了Pycharm遠(yuǎn)程調(diào)試原理及具體配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python批量實(shí)現(xiàn)Word/EXCEL/PPT轉(zhuǎn)PDF

    Python批量實(shí)現(xiàn)Word/EXCEL/PPT轉(zhuǎn)PDF

    在日常辦公和文檔處理中,有時(shí)我們需要將多個(gè)Word文檔、Excel表格或PPT演示文稿轉(zhuǎn)換為PDF文件,本文將介紹如何使用Python編程語(yǔ)言批量實(shí)現(xiàn)將多個(gè)Word、Excel和PPT文件轉(zhuǎn)換為PDF文件,需要的可以參考下
    2023-09-09
  • Python虛擬環(huán)境Virtualenv使用教程

    Python虛擬環(huán)境Virtualenv使用教程

    這篇文章主要介紹了Python虛擬環(huán)境Virtualenv簡(jiǎn)明教程,本文整合了兩篇關(guān)于Virtualenv的使用教程,相信大家有通過(guò)本文一定可以學(xué)會(huì)如何使用Virtualenv,需要的朋友可以參考下
    2015-05-05
  • 舉例介紹Python中的25個(gè)隱藏特性

    舉例介紹Python中的25個(gè)隱藏特性

    這篇文章主要介紹了一些Python中的隱藏特性,從stackoverflow的人氣問(wèn)題回答中整理而來(lái),主要以代碼實(shí)際解釋說(shuō)明,需要的朋友可以參考下
    2015-03-03
  • python實(shí)現(xiàn)碑帖圖片橫向拼接

    python實(shí)現(xiàn)碑帖圖片橫向拼接

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)碑帖圖片橫向拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03

最新評(píng)論