最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3入門之JSON數(shù)據(jù)解析全面學習教程

 更新時間:2025年11月28日 09:31:15   作者:xcLeigh  
Python作為一門簡潔、易讀、功能強大的編程語言,其基礎(chǔ)語法是入門學習的核心,本文將為大家全面講解JSON數(shù)據(jù)解析的相關(guān)知識,需要的可以參考下

前言

Python作為一門簡潔、易讀、功能強大的編程語言,其基礎(chǔ)語法是入門學習的核心。掌握好基礎(chǔ)語法,能為后續(xù)的編程實踐打下堅實的基礎(chǔ)。本文將全面講解Python3的基礎(chǔ)語法知識,適合編程初學者系統(tǒng)學習。Python以其簡潔優(yōu)雅的語法和強大的通用性,成為當今最受歡迎的編程語言。本專欄旨在系統(tǒng)性地帶你從零基礎(chǔ)入門到精通Python核心。無論你是零基礎(chǔ)小白還是希望進階的專業(yè)開發(fā)者,都將通過清晰的講解、豐富的實例和實戰(zhàn)項目,逐步掌握語法基礎(chǔ)、核心數(shù)據(jù)結(jié)構(gòu)、函數(shù)與模塊、面向?qū)ο缶幊?、文件處理、主流庫?yīng)用(如數(shù)據(jù)分析、Web開發(fā)、自動化)以及面向?qū)ο蟾呒壧匦?,最終具備獨立開發(fā)能力和解決復(fù)雜問題的思維,高效應(yīng)對數(shù)據(jù)分析、人工智能、Web應(yīng)用、自動化腳本等廣泛領(lǐng)域的實際需求。

在當今的數(shù)據(jù)交換場景中,JSON(JavaScript Object Notation)憑借其輕量級、易讀易寫的特性,成為了前后端交互、API數(shù)據(jù)傳輸?shù)闹髁鞲袷?。而Python作為數(shù)據(jù)分析和后端開發(fā)的熱門語言,內(nèi)置了json模塊來高效處理JSON數(shù)據(jù)。本文將從JSON基礎(chǔ)概念入手,詳細講解Python3中json模塊的核心函數(shù)用法,結(jié)合實例幫助你快速掌握JSON數(shù)據(jù)的編解碼技巧。

一、JSON基礎(chǔ):為什么它如此重要

JSON是一種基于文本的輕量級數(shù)據(jù)交換格式,它源于JavaScript,但如今已成為跨語言、跨平臺的數(shù)據(jù)交換標準。相比于XML,JSON語法更簡潔、解析速度更快,非常適合傳輸結(jié)構(gòu)化數(shù)據(jù)(如用戶信息、接口返回結(jié)果等)。

如果你對JSON語法尚不熟悉,可以先了解其核心數(shù)據(jù)類型:

  • 對象(對應(yīng)Python的字典):用{key: value}表示,鍵值對之間用逗號分隔
  • 數(shù)組(對應(yīng)Python的列表):用[value1, value2, ...]表示
  • 基本類型:字符串(雙引號包裹)、數(shù)字(整數(shù)/浮點數(shù))、布爾值(true/false)、空值(null

二、Python3json模塊核心函數(shù)

Python3的標準庫json模塊提供了4個核心函數(shù),分別用于字符串級別的編解碼文件級別的編解碼,覆蓋了絕大多數(shù)JSON處理場景。

函數(shù)用途函數(shù)名核心作用
Python數(shù)據(jù)編碼為JSON字符串json.dumps()將Python原生數(shù)據(jù)類型轉(zhuǎn)換為JSON格式字符串
JSON字符串解碼為Python數(shù)據(jù)json.loads()將JSON格式字符串轉(zhuǎn)換為Python原生數(shù)據(jù)類型
Python數(shù)據(jù)寫入JSON文件json.dump()將Python數(shù)據(jù)直接寫入文件(JSON格式)
從JSON文件讀取Python數(shù)據(jù)json.load()從JSON文件中讀取數(shù)據(jù)并轉(zhuǎn)換為Python類型

三、關(guān)鍵知識點:Python與JSON類型對應(yīng)關(guān)系

在編解碼過程中,Python原生類型與JSON類型會自動轉(zhuǎn)換,理解對應(yīng)關(guān)系是避免數(shù)據(jù)異常的關(guān)鍵。

1. Python編碼為JSON的類型映射

當使用json.dumps()json.dump()時,Python數(shù)據(jù)會按照以下規(guī)則轉(zhuǎn)換為JSON類型:

Python原生類型轉(zhuǎn)換后的JSON類型示例
dict(字典)object(對象){'name': 'xcLeigh'} → {"name": "xcLeigh"}
list(列表)、tuple(元組)array(數(shù)組)[1, 2, 3] → [1,2,3];(1,2,3) → [1,2,3]
str(字符串)string(字符串)"Python" → "Python"
int/float(整數(shù)/浮點數(shù))number(數(shù)字)100 → 100;3.14 → 3.14
True(布爾值)trueTrue → true
False(布爾值)falseFalse → false
None(空值)nullNone → null

2. JSON解碼為Python的類型映射

當使用json.loads()json.load()時,JSON類型會按照以下規(guī)則轉(zhuǎn)換為Python類型:

JSON類型轉(zhuǎn)換后的Python類型示例
object(對象)dict(字典){"no": 1} → {'no': 1}
array(數(shù)組)list(列表)["xcLeigh", "Python"] → ['xcLeigh', 'Python']
string(字符串)str(字符串)"https://xcleigh.blog.csdn.net/" → "https://xcleigh.blog.csdn.net/"
number(int)(整數(shù))int(整數(shù))10 → 10
number(real)(浮點數(shù))float(浮點數(shù))3.14 → 3.14
trueTruetrue → True
falseFalsefalse → False
nullNonenull → None

四、實戰(zhàn)案例:從字符串到文件的完整操作

理論結(jié)合實踐才能快速掌握,下面通過3個遞進的案例,演示json模塊的核心用法。

案例1:Python數(shù)據(jù)編碼為JSON字符串(json.dumps())

將Python字典(最常用的結(jié)構(gòu)化數(shù)據(jù)類型)轉(zhuǎn)換為JSON字符串,方便后續(xù)傳輸或存儲。

#!/usr/bin/python3
import json

# 1. 定義Python字典(原始數(shù)據(jù))
data = {
    'no': 1,
    'name': 'xcLeigh',
    'url': 'https://xcleigh.blog.csdn.net/',
    'is_active': True,
    'tags': ['Python', 'JSON', '教程'],
    'score': 98.5,
    'extra_info': None
}

# 2. 使用json.dumps()編碼為JSON字符串
json_str = json.dumps(data)

# 3. 打印結(jié)果對比
print("Python原始數(shù)據(jù)(字典類型):", repr(data))
print("JSON字符串(類型):", json_str)
print("JSON字符串的類型:", type(json_str))  # 輸出 <class 'str'>

運行結(jié)果

Python原始數(shù)據(jù)(字典類型): {'no': 1, 'name': 'xcLeigh', 'url': 'https://xcleigh.blog.csdn.net/', 'is_active': True, 'tags': ['Python', 'JSON', '教程'], 'score': 98.5, 'extra_info': None}
JSON字符串(類型): {"no": 1, "name": "xcLeigh", "url": "https://xcleigh.blog.csdn.net/", "is_active": true, "tags": ["Python", "JSON", "教程"], "score": 98.5, "extra_info": null}
JSON字符串的類型: <class 'str'>

關(guān)鍵說明

  • Python的True轉(zhuǎn)換為JSON的true,None轉(zhuǎn)換為null(JSON語法要求小寫)
  • Python字典的鍵是字符串時,JSON字符串的鍵會自動用雙引號包裹(JSON鍵必須是雙引號字符串)

案例2:JSON字符串解碼為Python數(shù)據(jù)(json.loads())

將API返回的JSON字符串(或前端傳遞的JSON數(shù)據(jù))轉(zhuǎn)換為Python字典,方便后續(xù)數(shù)據(jù)處理(如提取字段、計算等)。

#!/usr/bin/python3
import json

# 1. 模擬一個JSON字符串(例如API返回結(jié)果)
json_str = '''
{
    "no": 1,
    "name": "xcLeigh",
    "url": "https://xcleigh.blog.csdn.net/",
    "is_active": true,
    "tags": ["Python", "JSON", "教程"],
    "score": 98.5,
    "extra_info": null
}
'''

# 2. 使用json.loads()解碼為Python字典
data = json.loads(json_str)

# 3. 提取并使用數(shù)據(jù)
print("解碼后的Python數(shù)據(jù)類型:", type(data))  # 輸出 <class 'dict'>
print("網(wǎng)站名稱:", data['name'])           # 輸出 xcLeigh
print("網(wǎng)站URL:", data['url'])            # 輸出 https://xcleigh.blog.csdn.net/
print("是否活躍:", data['is_active'])     # 輸出 True
print("標簽列表:", data['tags'][0])       # 輸出 Python(提取列表第一個元素)

運行結(jié)果

解碼后的Python數(shù)據(jù)類型: <class 'dict'>
網(wǎng)站名稱: xcLeigh
網(wǎng)站URL:https://xcleigh.blog.csdn.net/
是否活躍: True
標簽列表: Python

關(guān)鍵說明

  • JSON字符串中的true會轉(zhuǎn)換為Python的True,null轉(zhuǎn)換為None
  • 解碼后的數(shù)據(jù)可以直接用Python字典的語法操作(如data['key']提取值)

案例3:Python數(shù)據(jù)與JSON文件的交互(json.dump()/json.load())

當需要持久化存儲JSON數(shù)據(jù)(如配置文件、日志數(shù)據(jù))時,直接使用json.dump()json.load()操作文件,無需手動處理字符串寫入/讀取。

步驟1:將Python數(shù)據(jù)寫入JSON文件(json.dump())

#!/usr/bin/python3
import json

# 1. 定義Python數(shù)據(jù)
data = {
    'no': 1,
    'name': 'xcLeigh',
    'url': 'https://xcleigh.blog.csdn.net/',
    'tags': ['Python', 'JSON']
}

# 2. 使用with語句打開文件,自動管理文件關(guān)閉
with open('data.json', 'w', encoding='utf-8') as f:
    # json.dump(數(shù)據(jù), 文件對象)
    json.dump(data, f, ensure_ascii=False, indent=4)

print("JSON數(shù)據(jù)已成功寫入data.json文件")

參數(shù)說明

  • ensure_ascii=False:允許寫入非ASCII字符(如中文),避免亂碼
  • indent=4:格式化輸出,縮進4個空格,增強文件可讀性

運行后會生成data.json文件,內(nèi)容如下:

{
    "no": 1,
    "name": "xcLeigh",
    "url": "https://xcleigh.blog.csdn.net/",
    "tags": [
        "Python",
        "JSON"
    ]
}

步驟2:從JSON文件讀取數(shù)據(jù)(json.load())

#!/usr/bin/python3
import json

# 1. 使用with語句讀取文件
with open('data.json', 'r', encoding='utf-8') as f:
    # json.load(文件對象):讀取文件并解碼為Python數(shù)據(jù)
    data = json.load(f)

# 2. 使用讀取到的數(shù)據(jù)
print("從文件讀取的Python數(shù)據(jù):", data)
print("網(wǎng)站名稱:", data['name'])
print("標簽數(shù)量:", len(data['tags']))

運行結(jié)果

從文件讀取的Python數(shù)據(jù): {'no': 1, 'name': 'xcLeigh', 'url': 'https://xcleigh.blog.csdn.net/', 'tags': ['Python', 'JSON']}
網(wǎng)站名稱: xcLeigh
標簽數(shù)量: 2

五、常見問題與注意事項

數(shù)據(jù)類型不匹配錯誤:若Python數(shù)據(jù)中包含json模塊不支持的類型(如datetime對象、自定義類實例),直接編碼會報錯。解決方案:自定義default參數(shù)(如json.dumps(data, default=str)將不支持的類型轉(zhuǎn)為字符串)。

文件編碼問題:寫入/讀取JSON文件時,務(wù)必指定encoding='utf-8',否則中文等非ASCII字符可能出現(xiàn)亂碼。

dumpsdump、loadsload的區(qū)別

  • s的函數(shù)(dumps/loads):操作字符串,適用于內(nèi)存中的數(shù)據(jù)處理(如API交互)。
  • 不帶s的函數(shù)(dump/load):操作文件對象,適用于文件持久化存儲。

到此這篇關(guān)于Python3入門之JSON數(shù)據(jù)解析全面學習教程的文章就介紹到這了,更多相關(guān)Python3 JSON數(shù)據(jù)解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中Excel圖片插入、提取與壓縮操作的完整指南

    Python中Excel圖片插入、提取與壓縮操作的完整指南

    通過 Python,我們可以實現(xiàn)對 Excel 中圖片的自動化管理,這不僅能節(jié)省大量人工操作時間,還能確保圖片布局一致、美觀,同時支持批量處理、圖片壓縮和格式優(yōu)化,下面小編就和大家介紹一下具體的步驟吧
    2026-03-03
  • Python導(dǎo)入模塊時遇到的錯誤分析

    Python導(dǎo)入模塊時遇到的錯誤分析

    這篇文章主要給大家詳細解釋了在Python處理導(dǎo)入模塊的時候出現(xiàn)錯誤以及具體的情況分析,非常的詳盡,有需要的小伙伴可以參考下
    2017-08-08
  • Python3 串口接收與發(fā)送16進制數(shù)據(jù)包的實例

    Python3 串口接收與發(fā)送16進制數(shù)據(jù)包的實例

    今天小編就為大家分享一篇Python3 串口接收與發(fā)送16進制數(shù)據(jù)包的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 基于Python和Tkinter實現(xiàn)文本文件轉(zhuǎn)換為MP3語音文件

    基于Python和Tkinter實現(xiàn)文本文件轉(zhuǎn)換為MP3語音文件

    本文介紹了基于Python和Tkinter的圖形界面應(yīng)用程序,該程序用于將文本文件轉(zhuǎn)換為MP3語音文件,功能包括文本轉(zhuǎn)語音轉(zhuǎn)換、文件處理、語音參數(shù)調(diào)節(jié)等,用戶界面設(shè)計合理,具有多線程處理、自動保存和錯誤處理等技術(shù)特點,使用流程簡單易懂,附帶幫助文檔
    2026-02-02
  • python 矩陣增加一行或一列的實例

    python 矩陣增加一行或一列的實例

    下面小編就為大家分享一篇python 矩陣增加一行或一列的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python爬蟲之教你利用Scrapy爬取圖片

    Python爬蟲之教你利用Scrapy爬取圖片

    這篇文章主要介紹了Python爬蟲之教你利用Scrapy爬取圖片,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python帶參數(shù)裝飾器的兩種寫法示例代碼

    python帶參數(shù)裝飾器的兩種寫法示例代碼

    裝飾器是 Python 中非常有用的語法特性,可以用于包裝或者修改函數(shù)的行為,本文介紹了python帶參數(shù)裝飾器的兩種寫法,需要的朋友可以參考下
    2023-08-08
  • 用Python逐行分析文件方法

    用Python逐行分析文件方法

    在本篇文章里我們給大家分享了關(guān)于用Python逐行分析文件方法知識點,有需要的朋友們跟著學習下。
    2019-01-01
  • pycharm創(chuàng)建并使用虛擬環(huán)境的詳細圖文教程

    pycharm創(chuàng)建并使用虛擬環(huán)境的詳細圖文教程

    Python的虛擬環(huán)境是正常的現(xiàn)實環(huán)境相對應(yīng)的,在虛擬環(huán)境中安裝的包是與現(xiàn)實環(huán)境隔離的,下面這篇文章主要給大家介紹了關(guān)于pycharm創(chuàng)建并使用虛擬環(huán)境的詳細圖文教程,需要的朋友可以參考下
    2022-08-08
  • 詳解Python排序算法的實現(xiàn)(冒泡,選擇,插入,快速)

    詳解Python排序算法的實現(xiàn)(冒泡,選擇,插入,快速)

    這篇文章主要為大家介紹了Python中常見的四種排序算法的實現(xiàn):冒泡排序、選擇排序、插入排序和快速排序,文中通過圖片詳細講解了它們實現(xiàn)的原理與代碼,需要的可以參考一下
    2022-04-04

最新評論

公主岭市| 南安市| 贞丰县| 安阳市| 莲花县| 文成县| 阜南县| 土默特右旗| 商洛市| 云林县| 申扎县| 万安县| 宁蒗| 南宁市| 青龙| 广宗县| 泾阳县| 黄平县| 讷河市| 六枝特区| 观塘区| 商河县| 卢氏县| 汽车| 卓尼县| 凌海市| 玉树县| 德清县| 沐川县| 扶沟县| 皋兰县| 忻州市| 老河口市| 昌江| 驻马店市| 黔西| 乌海市| 湘潭市| 云阳县| 南溪县| 万源市|