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

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

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

JSON與Python序列化操作指南

一、JSON概述

定義

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

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

Python中的映射關(guān)系

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

二、序列化模塊對(duì)比

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

三、json模塊核心方法

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

import json

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

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

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

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

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

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

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

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

生成文件內(nèi)容

{"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"內(nèi)容: {load_dict}")               # {'one': 1, 'two': {'2.1': ['a', 'b']}}

四、JSON文件格式化技巧

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

# 方法1:dumps() + 手動(dòng)寫(xiě)入
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)

關(guān)鍵參數(shù)

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

格式化后文件

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

核心總結(jié)

基礎(chǔ)轉(zhuǎn)換

  • dumps/loads:內(nèi)存對(duì)象 ↔ JSON字符串
  • dump/load:文件 ↔ 內(nèi)存對(duì)象

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

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

最佳實(shí)踐

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

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決PyCharm無(wú)法使用lxml庫(kù)的問(wèn)題(圖解)

    解決PyCharm無(wú)法使用lxml庫(kù)的問(wèn)題(圖解)

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

    Python requests庫(kù)參數(shù)提交的注意事項(xiàng)總結(jié)

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

    簡(jiǎn)介二分查找算法與相關(guān)的Python實(shí)現(xiàn)示例

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

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

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

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

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

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

    python簡(jiǎn)單爬蟲(chóng),爬取吉首大學(xué)成績(jī)單,學(xué)校的成績(jī)單居然不支持導(dǎo)出,太坑了,算個(gè)績(jī)點(diǎn)居然還要手打,我吐了.花2個(gè)多小時(shí)寫(xiě)了此python程序來(lái)生成可方便求和平均的Excel文件,幫助JSU學(xué)子脫離手算煩惱...
    2021-06-06
  • Python?文檔解析lxml庫(kù)的使用詳解

    Python?文檔解析lxml庫(kù)的使用詳解

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

    Python寫(xiě)入CSV文件的方法

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

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

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

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

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

最新評(píng)論

营山县| 志丹县| 万宁市| 怀来县| 昆山市| 锡林郭勒盟| 东乡族自治县| 武强县| 读书| 互助| 兴海县| 娱乐| 洛川县| 饶平县| 闵行区| 恭城| 荔波县| 日照市| 即墨市| 讷河市| 香港| 彭州市| 青阳县| 玛沁县| 永丰县| 中卫市| 中方县| 云霄县| 阿拉尔市| 武穴市| 洪泽县| 巫溪县| 乡宁县| 黄石市| 肃北| 胶南市| 成都市| 关岭| 慈利县| 东辽县| 清流县|