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

Python3入門之JSON數據解析全面學習教程

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

前言

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

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

一、JSON基礎:為什么它如此重要

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

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

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

二、Python3json模塊核心函數

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

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

三、關鍵知識點:Python與JSON類型對應關系

在編解碼過程中,Python原生類型與JSON類型會自動轉換,理解對應關系是避免數據異常的關鍵。

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

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

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

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

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

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

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

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

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

將Python字典(最常用的結構化數據類型)轉換為JSON字符串,方便后續(xù)傳輸或存儲。

#!/usr/bin/python3
import json

# 1. 定義Python字典(原始數據)
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. 打印結果對比
print("Python原始數據(字典類型):", repr(data))
print("JSON字符串(類型):", json_str)
print("JSON字符串的類型:", type(json_str))  # 輸出 <class 'str'>

運行結果

Python原始數據(字典類型): {'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'>

關鍵說明

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

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

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

#!/usr/bin/python3
import json

# 1. 模擬一個JSON字符串(例如API返回結果)
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. 提取并使用數據
print("解碼后的Python數據類型:", type(data))  # 輸出 <class 'dict'>
print("網站名稱:", data['name'])           # 輸出 xcLeigh
print("網站URL:", data['url'])            # 輸出 https://xcleigh.blog.csdn.net/
print("是否活躍:", data['is_active'])     # 輸出 True
print("標簽列表:", data['tags'][0])       # 輸出 Python(提取列表第一個元素)

運行結果

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

關鍵說明

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

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

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

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

#!/usr/bin/python3
import json

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

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

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

參數說明

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

運行后會生成data.json文件,內容如下:

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

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

#!/usr/bin/python3
import json

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

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

運行結果

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

五、常見問題與注意事項

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

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

dumpsdumploadsload的區(qū)別

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

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

相關文章

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

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

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

    Python導入模塊時遇到的錯誤分析

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

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

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

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

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

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

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

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

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

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

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

    用Python逐行分析文件方法

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

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

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

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

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

最新評論

长武县| 乌兰县| 积石山| 鹤山市| 阿勒泰市| 海安县| 海阳市| 富阳市| 松潘县| 保山市| 英德市| 庆云县| 德清县| 乌海市| 福海县| 甘泉县| 聂拉木县| 巧家县| 松滋市| 洮南市| 巴彦县| 广宗县| 甘洛县| 荣成市| 玉屏| 普宁市| 静乐县| 峨眉山市| 明溪县| 玛曲县| 普陀区| 钟山县| 前郭尔| 敦煌市| 阳春市| 新源县| 沈阳市| 阳山县| 礼泉县| 西乌珠穆沁旗| 加查县|