搜尋
首頁後端開發Python教學Python下JSON和pickle的用法介紹(附程式碼)

這篇文章帶給大家的內容是關於Python下JSON和pickle的用法介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

一:簡介

(1)JSON (JavaScript Object Notation) 是一種輕量級(XML重量級)的資料交換格式。
   是為了資料交換而客製化的一種規則,它是基於ECMAScript的一個子集。

(2)JSON是一種資料格式!
   字串是JSON的表現形式。 (符合JSON格式的字串叫做JSON字串)

(3)Python3中可以使用json 模組來對JSON 資料進行編解碼,它包含了兩個函數:
json.dumps() : 對資料進行編碼。
json.loads(): 對資料進行解碼。

(4)JSON的優點是:易於閱讀、易解析、網路傳輸效率高、跨語言交換資料

二:python 編碼為JSON型別轉換對應表:

    _______________________________________________
    |    python           |         JSON            |
    -------------------------------------------------
    |    dict             |        object           |
    -------------------------------------------------
    |    list,tuple       |         array           |
    -------------------------------------------------
    |    str              |        string           |
    -------------------------------------------------
    |   int,float,Enums   |       number            |
    -------------------------------------------------
    |   True,False,None   |    true,false,null      |
    -------------------------------------------------

三: 如果你要處理的是檔案而不是字串,可以使用
json.dump()
json.load()

四:用pickle對資料序列化與反序列化

(1)方法:
pickle.dump()
       pickle.load()
      pickle.dumps()
  kle   pic kle loads ()

(2)資料型態:
       所有python支援的原生型別:布林值,整數,浮點數,複數,字串,位元組,None。
       由任何原生類型組成的列表,元組,字典和集合。
       函數,類,類別的實例

五:JSON和pickle之間的區別

JSON序列化和反序列化的目的是將Python資料類型轉換為JSON標準類型,
   或將JSON類型的資料轉換為python的資料類型,從而實現不同語言之間的資料交換!
pickle:在程式運作過程中希望保存一個數據,重複使用或傳送給其他人,可以採用這方式
   將資料寫入文件,支援所有資料類型!

import json
import pickle
# ----------------------------------------------#
# 反序列化
# ----------------------------------------------#
# object
json_str = '{"name":"qiyue", "age":18}'     # JSON字符串
student = json.loads(json_str)    # JSON对象转换为字典
print(student)
print(json_str)
print(type(student))

# object
json_str1 = '[{"name":"qiyue", "age":18, "flag":false}, ' \
            '{"name":"qiyue", "age":18}]'     # JSON字符串
student1 = json.loads(json_str1)    # JSON对象转换为字典
print(type(student1), student1)
print(student1[0])

# ----------------------------------------------#
# 序列化
# ----------------------------------------------#
student2 = [
                {"name": "qiyue", "age": 18, "flag": False},
                {"name": "qiyue", "age": 18}
           ]

json_str1 = json.dumps(student2)    # 转换为字符串后可以利用正则表达式处理字符串
print(type(json_str1), json_str1)

# ----------------------------------------------#
# 处理的是文件
# ----------------------------------------------#
# 将数据写入文件
student3 = [
                {"name": "qiyue", "age": 18, "flag": False},
                {"name": "qiyue", "age": 18}
           ]
with open('data.json', 'w') as f:
    json.dump(student3, f)

# 读取数据
with open('data.json', 'r') as f:
    data = json.load(f)


# dumps(object)将对象序列化
list_a = ["English", "Math", "Chinese"]
list_b = pickle.dumps(list_a)   # 序列化数据
print(list_a)
print(list_b)

# loads(object)将对象原样恢复,并且对象类型也恢复原来的格式
list_c = pickle.loads(list_b)
print(list_c)


# dumps(object,file)将对象序列化后存储到文件中
group1 = ("baidu", "wen", "qingtian")
f1 = open('group.txt', 'wb')
pickle.dump(group1, f1, True)
f1.close()

# load(object, file)将文件中的信息恢复
f2 = open('group.txt', 'rb')
t = pickle.load(f2)
f2.close()
print(t)

以上是Python下JSON和pickle的用法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
Python腳本可能無法在UNIX上執行的一些常見原因是什麼?Python腳本可能無法在UNIX上執行的一些常見原因是什麼?Apr 28, 2025 am 12:18 AM

Python腳本在Unix系統上無法運行的原因包括:1)權限不足,使用chmod xyour_script.py賦予執行權限;2)Shebang行錯誤或缺失,應使用#!/usr/bin/envpython;3)環境變量設置不當,可打印os.environ調試;4)使用錯誤的Python版本,可在Shebang行或命令行指定版本;5)依賴問題,使用虛擬環境隔離依賴;6)語法錯誤,使用python-mpy_compileyour_script.py檢測。

舉一個場景的示例,其中使用Python數組比使用列表更合適。舉一個場景的示例,其中使用Python數組比使用列表更合適。Apr 28, 2025 am 12:15 AM

使用Python數組比列表更適合處理大量數值數據。 1)數組更節省內存,2)數組對數值運算更快,3)數組強制類型一致性,4)數組與C語言數組兼容,但在靈活性和便捷性上不如列表。

在Python中使用列表與數組的性能含義是什麼?在Python中使用列表與數組的性能含義是什麼?Apr 28, 2025 am 12:10 AM

列表列表更好的forflexibility andmixDatatatypes,何時出色的Sumerical Computitation sand larged數據集。 1)不可使用的列表xbilese xibility xibility xibility xibility xibility xibility xibility xibility xibility xibility xibles and comply offrequent elementChanges.2)

Numpy如何處理大型數組的內存管理?Numpy如何處理大型數組的內存管理?Apr 28, 2025 am 12:07 AM

numpymanagesmemoryforlargearraysefefticefticefipedlyuseviews,副本和內存模擬文件.1)viewsAllowSinglicingWithOutCopying,直接modifytheoriginalArray.2)copiesCanbecopy canbecreatedwitheDedwithTheceDwithThecevithThece()methodervingdata.3)metservingdata.3)memore memore-mappingfileShessandAstaStaStstbassbassbassbassbassbassbassbassbassbassbb

哪個需要導入模塊:列表或數組?哪個需要導入模塊:列表或數組?Apr 28, 2025 am 12:06 AM

Listsinpythondonotrequireimportingamodule,helilearraysfomthearraymoduledoneedanimport.1)列表列表,列表,多功能和canholdMixedDatatatepes.2)arraysaremoremoremoremoremoremoremoremoremoremoremoremoremoremoremoremoremeremeremeremericdatabuteffeftlessdatabutlessdatabutlessfiblesible suriplyElsilesteletselementEltecteSemeTemeSemeSemeSemeTypysemeTypysemeTysemeTypysemeTypepe。

可以在Python數組中存儲哪些數據類型?可以在Python數組中存儲哪些數據類型?Apr 27, 2025 am 12:11 AM

pythonlistscanStoryDatatepe,ArrayModulearRaysStoreOneType,and numpyArraySareSareAraysareSareAraysareSareComputations.1)列出sareversArversAtileButlessMemory-Felide.2)arraymoduleareareMogeMogeNareSaremogeNormogeNoreSoustAta.3)

如果您嘗試將錯誤的數據類型的值存儲在Python數組中,該怎麼辦?如果您嘗試將錯誤的數據類型的值存儲在Python數組中,該怎麼辦?Apr 27, 2025 am 12:10 AM

WhenyouattempttostoreavalueofthewrongdatatypeinaPythonarray,you'llencounteraTypeError.Thisisduetothearraymodule'sstricttypeenforcement,whichrequiresallelementstobeofthesametypeasspecifiedbythetypecode.Forperformancereasons,arraysaremoreefficientthanl

Python標準庫的哪一部分是:列表或數組?Python標準庫的哪一部分是:列表或數組?Apr 27, 2025 am 12:03 AM

pythonlistsarepartofthestAndArdLibrary,herilearRaysarenot.listsarebuilt-In,多功能,和Rused ForStoringCollections,而EasaraySaraySaraySaraysaraySaraySaraysaraySaraysarrayModuleandleandleandlesscommonlyusedDduetolimitedFunctionalityFunctionalityFunctionality。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境