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

python讀寫json、格式化寫入json文件實現(xiàn)方式

 更新時間:2025年10月24日 08:53:24   作者:尤達c  
文章介紹了JSON和Python序列化操作,對比了json和pickle模塊的特點,詳細講解了json模塊的核心方法、數(shù)據(jù)類型限制以及JSON文件格式化技巧

JSON與Python序列化操作指南

一、JSON概述

定義

JSON(JavaScript Object Notation)是一種輕量級數(shù)據(jù)交換格式,基于ECMAScript子集,具有以下特性:

  • 語言無關的文本格式
  • 語法類似C語言家族(C/C++/Java/JavaScript等)
  • 人類可讀且機器高效解析
  • 廣泛用于網(wǎng)絡數(shù)據(jù)傳輸

Python中的映射關系

JSON數(shù)組   ? Python列表(list)
JSON對象  ? Python字典(dict)

二、序列化模塊對比

特性json 模塊pickle 模塊
跨語言支持?? (多語言兼容)? (僅Python)
數(shù)據(jù)類型支持基礎類型(字典/列表/字符串/數(shù)字)所有Python類型(類/函數(shù)等)
安全性高(無代碼執(zhí)行風險)低(可能執(zhí)行任意代碼)
典型用途API數(shù)據(jù)交換、配置文件Python對象持久化存儲

三、json模塊核心方法

1. dumps():數(shù)據(jù)類型 → JSON字符串

import json

test_dict = {'one': 1, 'two': {2.1: ['a', 'b']}}
json_str = json.dumps(test_dict)  # 關鍵操作

print(f"原始類型: {type(test_dict)}")  # <class 'dict'>
print(f"轉換后類型: {type(json_str)}")  # <class 'str'>
print(f"JSON字符串: {json_str}")      # {"one": 1, "two": {"2.1": ["a", "b"]}}

注意:鍵2.1會被轉換為字符串(JSON規(guī)范要求鍵必須是字符串)

2. loads():JSON字符串 → Python數(shù)據(jù)類型

new_dict = json.loads(json_str)  # 解析JSON字符串

print(f"解析后類型: {type(new_dict)}")  # <class 'dict'>
print(f"內容: {new_dict}")             # {'one': 1, 'two': {'2.1': ['a', 'b']}}

3. dump():字典 → JSON文件

with open("record.json", "w") as f:
    json.dump(new_dict, f)  # 寫入文件
    print("JSON文件寫入完成")

生成文件內容

{"one": 1, "two": {"2.1": ["a", "b"]}}

4. load():JSON文件 → Python字典

with open("record.json", "r") as load_f:
    load_dict = json.load(load_f)  # 從文件加載

print(f"文件解析類型: {type(load_dict)}")  # <class 'dict'>
print(f"內容: {load_dict}")               # {'one': 1, 'two': {'2.1': ['a', 'b']}}

四、JSON文件格式化技巧

兩種等效實現(xiàn)方式:

# 方法1:dumps() + 手動寫入
with open("format_json.json", "w") as f:
    f.write(json.dumps(load_dict, indent=4, ensure_ascii=False))

# 方法2:直接使用dump()參數(shù)
with open("format_json.json", "w") as f:
    json.dump(load_dict, f, indent=4, ensure_ascii=False)

關鍵參數(shù)

  • indent=4:4空格縮進格式化
  • ensure_ascii=False:支持非ASCII字符(如中文)

格式化后文件

{
    "one": 1,
    "two": {
        "2.1": [
            "a",
            "b"
        ]
    }
}

核心總結

基礎轉換

  • dumps/loads:內存對象 ↔ JSON字符串
  • dump/load:文件 ↔ 內存對象

數(shù)據(jù)類型限制

JSON不支持Python特有類型(如日期/類對象),此時需用pickle。

最佳實踐

# 寫入推薦
json.dump(data, file, indent=2, ensure_ascii=False) 

# 讀取推薦
with open("data.json") as f:
    data = json.load(f)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 解決PyCharm無法使用lxml庫的問題(圖解)

    解決PyCharm無法使用lxml庫的問題(圖解)

    這篇文章主要介紹了解決PyCharm無法使用lxml庫的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Python requests庫參數(shù)提交的注意事項總結

    Python requests庫參數(shù)提交的注意事項總結

    這篇文章主要給大家介紹了關于Python requests庫參數(shù)提交的注意事項,文中通過示例代碼和圖片介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 簡介二分查找算法與相關的Python實現(xiàn)示例

    簡介二分查找算法與相關的Python實現(xiàn)示例

    這篇文章主要介紹了二分查找算法與相關的Python實現(xiàn)示例,Binary Search同時也是算法學習當中最基礎的知識,需要的朋友可以參考下
    2015-08-08
  • 使用pytest結合Playwright實現(xiàn)頁面元素在兩個區(qū)域間拖拽功能

    使用pytest結合Playwright實現(xiàn)頁面元素在兩個區(qū)域間拖拽功能

    本文介紹了如何使用pytest結合Playwright實現(xiàn)頁面元素在兩個區(qū)域間的拖拽操作,通過創(chuàng)建一個簡單的HTML頁面和JavaScript代碼來實現(xiàn)拖放功能,并使用Playwright的API來模擬和驗證拖拽操作,需要的朋友可以參考下
    2026-01-01
  • Python使用sys.argv與argparse進行命令行參數(shù)處理

    Python使用sys.argv與argparse進行命令行參數(shù)處理

    在Python開發(fā)中,命令行參數(shù)處理是高頻需求, 小到快速編寫的測試腳本,大到生產級的命令行工具,都需要接收外部傳入的參數(shù)并解析,Python提供了多種處理命令行參數(shù)的方式,其中sys.argv和argparse是最常用的兩種,本文將結合實戰(zhàn)代碼,深度解析兩者的特點及區(qū)別
    2026-03-03
  • python 爬取吉首大學網(wǎng)站成績單

    python 爬取吉首大學網(wǎng)站成績單

    python簡單爬蟲,爬取吉首大學成績單,學校的成績單居然不支持導出,太坑了,算個績點居然還要手打,我吐了.花2個多小時寫了此python程序來生成可方便求和平均的Excel文件,幫助JSU學子脫離手算煩惱...
    2021-06-06
  • Python?文檔解析lxml庫的使用詳解

    Python?文檔解析lxml庫的使用詳解

    lxml 是 Python 常用的文檔解析庫,能夠高效地解析 HTML/XML 文檔,常用于 Python 爬蟲,這篇文章主要介紹了Python?文檔解析:lxml庫的使用,需要的朋友可以參考下
    2022-09-09
  • Python寫入CSV文件的方法

    Python寫入CSV文件的方法

    這篇文章主要介紹了Python寫入CSV文件的方法,涉及Python使用csv模塊操作csv文件讀寫的相關技巧,非常簡單實用,需要的朋友可以參考下
    2015-07-07
  • python中pyc、?pyd文件及生成使用完整實例代碼

    python中pyc、?pyd文件及生成使用完整實例代碼

    這篇文章主要介紹了python中pyc、?pyd文件及生成使用的相關資料,重點講解了如何使用Python解釋器編譯.py文件為.pyc文件,以及如何使用Cython和distutils工具將C/C++代碼編譯為.pyd文件,需要的朋友可以參考下
    2025-04-04
  • 利用Jmeter實現(xiàn)在請求param和body里面加入隨機參數(shù)

    利用Jmeter實現(xiàn)在請求param和body里面加入隨機參數(shù)

    本文介紹了如何使用jemeter實現(xiàn)新增接口壓力測試中的隨機參數(shù)生成,首先,使用函數(shù)助手對話框生成隨機數(shù),然后將生成的隨機數(shù)作為參數(shù)放入請求中,無論請求格式是json、xml還是text等,如果param和body同時存在并需要隨機生成參數(shù),可以把參數(shù)寫入到請求地址中
    2024-10-10

最新評論

嘉荫县| 共和县| 阿克| 闽清县| 阳朔县| 南靖县| 黄平县| 张家港市| 三台县| 射洪县| 长沙市| 旺苍县| 年辖:市辖区| 普宁市| 喜德县| 秭归县| 中山市| 双峰县| 定远县| 盘山县| 丰镇市| 承德市| 沾益县| 大埔县| 泰州市| 彭阳县| 个旧市| 茂名市| 江都市| 马公市| 延川县| 华阴市| 绍兴市| 延安市| 溧水县| 织金县| 莱州市| 石泉县| 七台河市| 玉门市| 溧水县|