国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python怎么實(shí)現(xiàn)數(shù)據(jù)的序列化操作?下面給大家做一個(gè)解答

89542767 / 416人閱讀

  小編寫這篇文章的一個(gè)主要目的,主要是給大家講解關(guān)于Python的一些技能,主要是會(huì)涉及到相關(guān)的一些數(shù)據(jù)問(wèn)題,那么,怎么樣才能夠?qū)崿F(xiàn)序列化的一些操作呢?下面小編就給大家詳細(xì)的去做一個(gè)解答。


  在日常開(kāi)發(fā)中,對(duì)數(shù)據(jù)進(jìn)行序列化和反序列化是常見(jiàn)的數(shù)據(jù)操作,Python提供了兩個(gè)模塊方便開(kāi)發(fā)者實(shí)現(xiàn)數(shù)據(jù)的序列化操作,即json模塊和pickle模塊。這兩個(gè)模塊主要區(qū)別如下:


  json是一個(gè)文本序列化格式,而pickle是一個(gè)二進(jìn)制序列化格式;


  json是我們可以直觀閱讀的,而pickle不可以;


  json是可互操作的,在Python系統(tǒng)之外廣泛使用,而pickle則是Python專用的;


  默認(rèn)情況下,json只能表示Python內(nèi)置類型的子集,不能表示自定義的類;但pickle可以表示大量的Python數(shù)據(jù)類型。


  Json模塊


  Json是一種輕量級(jí)的數(shù)據(jù)交換格式,由于其具有傳輸數(shù)據(jù)量小、數(shù)據(jù)格式易解析等特點(diǎn),它被廣泛應(yīng)用于各系統(tǒng)之間的交互操作,作為一種數(shù)據(jù)格式傳遞數(shù)據(jù)。它包含多個(gè)常用函數(shù),具體如下:


  dumps()函數(shù)


  dumps()函數(shù)可以將Python對(duì)象編碼成Json字符串。例如:
  #字典轉(zhuǎn)成json字符串加上ensure_ascii=False以后,可以識(shí)別中文,indent=4是間隔4個(gè)空格顯示
  import json
  d={'小明':{'sex':'男','addr':'上海','age':26},'小紅':{'sex':'女','addr':'上海','age':24},}
  print(json.dumps(d,ensure_ascii=False,indent=4))
  #執(zhí)行結(jié)果:
  {
  "小明":{
  "sex":"男",
  "addr":"上海",
  "age":26
  },
  "小紅":{
  "sex":"女",
  "addr":"上海",
  "age":24
  }
  }


  dump()函數(shù)


   dump()函數(shù)可以將Python對(duì)象編碼成json字符串,自動(dòng)寫入到文件中,不需要再多帶帶寫文件。例如:
  #字典轉(zhuǎn)成json字符串,不需要寫文件,自動(dòng)轉(zhuǎn)成的json字符串寫入到‘users.json'的文件中
  import json
  d={'小明':{'sex':'男','addr':'上海','age':26},'小紅':{'sex':'女','addr':'上海','age':24},}
  #打開(kāi)一個(gè)名字為‘users.json'的空文件
  fw=open('users.json','w',encoding='utf-8')
  json.dump(d,fw,ensure_ascii=False,indent=4)


  loads()函數(shù)


  loads()函數(shù)可以將json字符串轉(zhuǎn)換成Python的數(shù)據(jù)類型。例如:


  #這是users.json文件中的內(nèi)容
  {
  "小明":{
  "sex":"男",
  "addr":"上海",
  "age":26
  },
  "小紅":{
  "sex":"女",
  "addr":"上海",
  "age":24
  }
  }
  #!/usr/bin/python3
  #把json串變成python的數(shù)據(jù)類型
  import json
  #打開(kāi)‘users.json'的json文件
  f=open('users.json','r',encoding='utf-8')
  #讀文件
  res=f.read()
  print(json.loads(res))
  #執(zhí)行結(jié)果:
  {'小明':{'sex':'男','addr':'上海','age':26},'小紅':{'sex':'女','addr':'上海','age':24}}


  load()函數(shù)


  load()跟loads()功能相似,load()函數(shù)可以將json字符串轉(zhuǎn)換成Python數(shù)據(jù)類型,不同的是前者的參數(shù)是一個(gè)文件對(duì)象,不需要再多帶帶讀此文件。例如:


  #把json串變成python的數(shù)據(jù)類型:字典,傳一個(gè)文件對(duì)象,不需要再多帶帶讀文件
  import json
  #打開(kāi)文件
  f=open('users.json','r',encoding='utf-8')
  print(json.load(f))
  #執(zhí)行結(jié)果:
  {'小明':{'sex':'男','addr':'上海','age':26},'小紅':{'sex':'女','addr':'上海','age':24}}


  Pickle模塊


  Pickle模塊與Json模塊功能相似,也包含四個(gè)函數(shù),即dump()、dumps()、loads()和load(),它們的主要區(qū)別如下:


  dumps和dump的區(qū)別在于前者是將對(duì)象序列化,而后者是將對(duì)象序列化并保存到文件中。


  loads和load的區(qū)別在于前者是將序列化的字符串反序列化,而后者是將序列化的字符串從文件讀取并反序列化。


  dumps()函數(shù)


  dumps()函數(shù)可以將數(shù)據(jù)通過(guò)特殊的形式轉(zhuǎn)換為只有python語(yǔ)言認(rèn)識(shí)的字符串,例如:


  import pickle
  #dumps功能
  import pickle
  data=['A','B','C','D']
  print(pickle.dumps(data))
  b'x80x03]qx00(Xx01x00x00x00Aqx01Xx01x00x00x00Bqx02Xx01x00x00x00Cqx03Xx01x00x00x00Dqx04e.'

  dump()函數(shù)


  dump()函數(shù)可以將數(shù)據(jù)通過(guò)特殊的形式轉(zhuǎn)換為只有python語(yǔ)言認(rèn)識(shí)的字符串,并寫入文件。例如:


  #dump功能
  with open('test.txt','wb')as f:
  pickle.dump(data,f)
  print('寫入成功')
  寫入成功


  loads()函數(shù)


  loads()函數(shù)可以將pickle數(shù)據(jù)轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)。例如:


  #loads功能
  msg=pickle.loads(datastr)
  print(msg)
  ['A','B','C','D']


  load()函數(shù)


  load()函數(shù)可以從數(shù)據(jù)文件中讀取數(shù)據(jù),并轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)。例如:


  #load功能
  with open('test.txt','rb')as f:
  data=pickle.load(f)
  print(data)
  ['A','B','C','D']


  到此為止,這篇文章就給大家介紹完畢,希望可以給大家?guī)?lái)幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/128286.html

相關(guān)文章

  • Python中CSV文件如何分割?下面大家解答

      小編寫這篇文章的主要目的,主要還是給大家講解一下關(guān)于Python中CSV文件的相關(guān)內(nèi)容,教給怎么樣去對(duì)大批量的數(shù)據(jù),去進(jìn)行分割。比如如何分割CSV文件呢?下面給大家詳細(xì)解答一下?! ∫?、csv文件介紹  1、csv文件簡(jiǎn)介  逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本...

    89542767 評(píng)論0 收藏0
  • 怎么python正則表達(dá)式提取/匹配中文漢字

      小編寫這篇文章的一個(gè)主要目的,主要是給大家去做一個(gè)解答,解答的內(nèi)容主要還是python相關(guān)事宜,比如,可以用python正則表達(dá)式去匹配和提取中文漢字,那么,具體的內(nèi)容做法是什么呢?下面就給大家詳細(xì)解答下。  python用正則表達(dá)式提取中文  Python re正則匹配中文,其實(shí)非常簡(jiǎn)單,把中文的unicode字符串轉(zhuǎn)換成utf-8格式就可以了,然后可以在re中隨意調(diào)用  unicode中中...

    89542767 評(píng)論0 收藏0
  • Python Map函數(shù)保姆級(jí)使用教程

      小編寫這篇文章的一個(gè)主要目的,主要是給大家去做一個(gè)介紹,介紹的內(nèi)容涉及到Python Map函數(shù)的一些使用方法,還會(huì)涉及到一些具體的保姆級(jí)的一些相關(guān)使用教程,具體的內(nèi)容,下面就給大家詳細(xì)解答下?! ”娝苤?,我們?cè)谑褂胮ython的時(shí)候,會(huì)大大的提高我們的一個(gè)工作效率,對(duì)我們工作效率的提高有一個(gè)本質(zhì)的提升?! ∧敲矗疚臅?huì)給大家統(tǒng)一的做個(gè)解答,解答的內(nèi)容還是涉及到相關(guān)的Python Map函數(shù)...

    89542767 評(píng)論0 收藏0
  • Python3出現(xiàn)SyntaxError:unexpected EOF while parsin錯(cuò)誤怎么解答

      小編寫這篇文章的主要目的,主要是給大家做出一個(gè)講解,講解的內(nèi)容就是關(guān)于Python3中,出現(xiàn)了問(wèn)題該怎么樣去進(jìn)行解答。包括出現(xiàn)SyntaxError:unexpected EOF while parsin這個(gè)問(wèn)題要怎么做,下面給大家詳細(xì)解答一下。  Python錯(cuò)誤SyntaxError:unexpected EOF while parsing原因如下:  1語(yǔ)言用法的問(wèn)題  這種問(wèn)題的話,基...

    89542767 評(píng)論0 收藏0
  • 怎么使用Flask實(shí)現(xiàn)接收與上傳圖片

    小編寫這篇文章的主要目的,主要是來(lái)給大家做出一個(gè)比較詳細(xì)解答,主要是給大家解答關(guān)于python中的一些知識(shí),比如Flask實(shí)現(xiàn)接手與上傳圖片,下面就給大家詳細(xì)解答下?! 〗酉聛?lái)給搭建講解Flask如何接受圖片文件,上面是復(fù)雜寫法,下面是簡(jiǎn)單寫法,二選一即可。  思路整理:接收?qǐng)D片->定義一個(gè)圖片存放的位置->給圖片重命名(為了唯一性)->保存操作-&...

    89542767 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<