日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python Json序列化与反序列化

發(fā)布時間:2025/3/18 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Json序列化与反序列化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  在python中,序列化可以理解為:把python的對象編碼轉換為json格式的字符串,反序列化可以理解為:把json格式字符串解碼為python數(shù)據(jù)對象在python的標準庫中,專門提供了json庫與pickle庫來處理這部分。

  json的dumps方法和loads方法,可實現(xiàn)數(shù)據(jù)的序列化和反序列化。具體來說,dumps方法,可將json格式數(shù)據(jù)序列為Python的相關的數(shù)據(jù)類型;loads方法則是相反,把python數(shù)據(jù)類型轉換為json相應的數(shù)據(jù)類型格式要求。在序列化時,中文漢字總是被轉換為unicode碼,在dumps函數(shù)中添加參數(shù)ensure_ascii=False即可解決。

?

  下面是json的序列化與反序列化:

  1、Json序列化如下:

1 import json 2 print (json.__all__) #查看json庫的所有方法 3 ['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONEncoder']

  未在dumps函數(shù)中添加參數(shù)ensure_ascii=False,結果如下:

1 #coding: utf-8 2 import json 3 4 dict = {'name':'zhangsan', 'age':33, 'address':'紅星路'} 5 print('未序列化前的數(shù)據(jù)類型為:', type(dict)) 6 print('為序列化前的數(shù)據(jù):', dict) 7 #對dict進行序列化的處理 8 dict_xu = json.dumps(dict) #直接進行序列化 9 print('序列化后的數(shù)據(jù)類型為:', type(dict_xu)) 10 print('序列化后的數(shù)據(jù)為:', dict_xu) 11 12 ---------------------------------------------------------------- 13 未序列化前的數(shù)據(jù)類型為: <class 'dict'> 14 為序列化前的數(shù)據(jù): {'name': 'zhangsan', 'address': '紅星路', 'age': 33} 15 序列化后的數(shù)據(jù)類型為: <class 'str'> 16 序列化后的數(shù)據(jù)為: {"name": "zhangsan", "address": "\u7ea2\u661f\u8def", "age": 33}

  在dumps函數(shù)中添加參數(shù)ensure_ascii=False,結果如下:

?

1 #coding: utf-8 2 import json 3 4 dict = {'name':'zhangsan', 'age':33, 'address':'紅星路'} 5 print('未序列化前的數(shù)據(jù)類型為:', type(dict)) 6 print('為序列化前的數(shù)據(jù):', dict) 7 #對dict進行序列化的處理 8 dict_xu = json.dumps(dict,ensure_ascii=False) #添加ensure_ascii=False進行序列化 9 print('序列化后的數(shù)據(jù)類型為:', type(dict_xu)) 10 print('序列化后的數(shù)據(jù)為:', dict_xu) 11 ------------------------------------------------------------------- 12 未序列化前的數(shù)據(jù)類型為: <class 'dict'> 13 為序列化前的數(shù)據(jù): {'address': '紅星路', 'age': 33, 'name': 'zhangsan'} 14 序列化后的數(shù)據(jù)類型為: <class 'str'> 15 序列化后的數(shù)據(jù)為: {"address": "紅星路", "age": 33, "name": "zhangsan"}

?

  2、Json反序列化如下:

1 #coding: utf-8 2 import json 3 4 dict = {'name':'zhangsan', 'age':33, 'address':'紅星路'} 5 print('未序列化前的數(shù)據(jù)類型為:', type(dict)) 6 print('為序列化前的數(shù)據(jù):', dict) 7 #對dict進行序列化的處理 8 dict_xu = json.dumps(dict,ensure_ascii=False) #添加ensure_ascii=False進行序列化 9 print('序列化后的數(shù)據(jù)類型為:', type(dict_xu)) 10 print('序列化后的數(shù)據(jù)為:', dict_xu) 11 #對dict_xu進行反序列化處理 12 dict_fan = json.loads(dict_xu) 13 print('反序列化后的數(shù)據(jù)類型為:', type(dict_fan)) 14 print('反序列化后的數(shù)據(jù)為: ', dict_fan) 15 ---------------------------------------------------------------------- 16 未序列化前的數(shù)據(jù)類型為: <class 'dict'> 17 為序列化前的數(shù)據(jù): {'name': 'zhangsan', 'age': 33, 'address': '紅星路'} 18 序列化后的數(shù)據(jù)類型為: <class 'str'> 19 序列化后的數(shù)據(jù)為: {"name": "zhangsan", "age": 33, "address": "紅星路"} 20 反序列化后的數(shù)據(jù)類型為: <class 'dict'> 21 反序列化后的數(shù)據(jù)為: {'name': 'zhangsan', 'age': 33, 'address': '紅星路'}

?

?  在實際的工作中,序列化或者反序列化的可能是一個文件的形式,不可能像如上寫的那樣簡單的,下來就來實現(xiàn)這部分,把文件內容進行序列化和反序列化,先來看序列化的代碼,兩步操作:1、先序列化 列表對象 ;2、步把序列化成的字符串寫入文件:

1 #coding: utf-8 2 import json 3 4 list = ['Apple','Huawei','selenium','java','python'] 5 #把list先序列化,寫入到一個文件中 6 # 兩步操作 1步先序列化 列表對象 2步把序列化成的字符串寫入文件 7 json.dump(list, open('e:/test.txt','w')) 8 r1=open('e:/test.txt','r') 9 print(r1.read()) 10 ------------------------------------------------------------------- 11 ["Apple", "Huawei", "selenium", "java", "python"]

反序列化,兩步操作:1、先讀取文件的字符串對象;2、然后反序列化成列表對象:

1 #coding: utf-8 2 import json 3 4 list = ['Apple','Huawei','selenium','java','python'] 5 #把list先序列化,寫入到一個文件中 6 # 兩步操作 1步先序列化 列表對象 2步把序列化成的字符串寫入文件 7 json.dump(list, open('e:/test.txt','w')) 8 r1=open('e:/test.txt','r') 9 print(r1.read()) 10 #------------------------------------------------------------ 11 #兩步操作:1、先讀取文件的字符串對象;2、然后反序列化成列表對象 12 res=json.load(open('e:/test.txt','r')) 13 print (res) 14 print('數(shù)據(jù)類型:',type(res)) 15 ------------------------------------------------------------- 16 ["Apple", "Huawei", "selenium", "java", "python"] 17 ['Apple', 'Huawei', 'selenium', 'java', 'python'] 18 數(shù)據(jù)類型: <class 'list'>

?

轉載于:https://www.cnblogs.com/diaosicai/p/6419833.html

總結

以上是生活随笔為你收集整理的Python Json序列化与反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 你懂的在线观看网址 | 西川结衣在线观看 | 欧美日韩综合在线 | 四虎一国产精品一区二区影院 | 野外吮她的花蒂高h在线观看 | 97人妻一区二区精品视频 | 色a在线 | 泰坦尼克号3小时49分的观看方法 | 亚洲男人的天堂av | 999这里只有精品 | 亚洲免费观看高清 | 中国精品一区二区 | 日韩黄色网 | 精品69 | 黄网站在线免费看 | 色哟哟一区二区三区 | 国产又粗又长又黄的视频 | 国产一区二区在线播放 | 欧美青青草 | 日韩三区在线 | 国产精品98 | 毛片网络 | 日韩精品在线不卡 | 亚洲精品污一区二区三区 | 久久久久女人精品毛片九一 | 茄子视频色 | 美女亚洲一区 | 久久久不卡 | 日韩视频网址 | 亚洲人成77777| 亚洲自拍偷拍一区 | 人妻在线一区二区 | 欧美骚少妇 | 中国 免费 av | 免费在线观看日韩av | 免费网站在线高清观看 | 国产乱国产乱老熟 | 国产精品无码久久久久久电影 | 污污网站在线 | 国产在线一区二区 | 伊人网站在线观看 | 浪荡奴双性跪着伺候 | 亚洲av永久无码精品国产精品 | 日韩欧美黄色网址 | 色综合91 | 色激情五月 | 日本a视频 | 色四月 | 中文幕无线码中文字蜜桃 | 欧美影院一区二区 | 国产欧美在线播放 | 一级欧美日韩 | 四虎影视免费永久大全 | 午夜日韩在线观看 | 人人射人人射 | 国产97免费视频 | 日韩美女国产精品 | 最近中文字幕一区二区 | 裸体毛片 | 国产欧美精品一区二区在线播放 | 天天色天天爽 | 中文字幕 日韩 欧美 | 伊人88 | 一区二区在线观看免费视频 | 国产一级片播放 | 美日韩成人 | 无码人妻一区二区三区免费 | 青少年xxxxx性开放hg | www.偷拍.com | 一级片成人 | 无码国产69精品久久久久网站 | 精品电影一区二区 | 国产丝袜视频在线 | 灌满闺乖女h高h调教尿h | 亚洲久久影院 | 黑人一级片 | 亚洲国产精华液网站w | 国产色播av在线 | 在线观看国产精品一区 | 日本精品一区二区 | 亚洲精品国产综合 | 色88久久久久高潮综合影院 | 台湾佬中文在线 | 午夜精品电影 | 亚洲调教欧美在线 | 2019中文在线观看 | 青草草在线视频 | 女人色极品影院 | 日韩av.com | 久久国产精品首页 | 爱如潮水3免费观看日本高清 | 国产成人自拍视频在线观看 | 日韩经典一区二区三区 | 欧美与黑人午夜性猛交久久久 | 琪琪色在线观看 | a在线免费观看 | 国产91在线精品 | 国产片淫乱18一级毛片动态图 | 亚洲精选久久久 |