Python基礎文法 - json & pickle

來源:互聯網
上載者:User

標籤:其他   get   並且   因此   pyc   from   strong   port   網路傳輸   

情景
例1dic = str({‘age‘:‘18‘})f = open(‘text‘,‘w‘)f.write(dic)f.close()例2f = open(‘text‘,‘r‘)data = f.read()print(eval(data)[‘age‘])

  當我們將記憶體資料Object Storage Service到檔案中,是無法直接將字典Object Storage Service,必須轉化為字串格式str(),當我們通過f.read()方法讀取檔案中儲存的字典格式對象時,讀取的也是字串個是,必須用eval()方法轉化,這種方法很Lou。

用於序列化的兩個模組

  • json,用於字串 和 python資料類型間進行轉換
  • pickle,用於python特有的類型 和 python的資料類型間進行轉換

Json模組提供了四個功能:dumps、dump、loads、load

pickle模組提供了四個功能:dumps、dump、loads、load

json模組

  再上面的情形中,更好的方法是通過Json模組,因為JSON表示出來就是一個字串,可以被所有語言讀取,也可以方便地儲存到磁碟或者通過網路傳輸。JSON不僅是標準格式,並且比XML更快,而且可以直接在Web頁面中讀取,非常方便。

import jsondic = {‘age‘:‘28‘}#寫入檔案data = json.dumps(dic)f = open(‘text‘,‘w‘)f.write(data)f.close()#讀取檔案f = open(‘text‘,‘r‘)data = f.read()content = json.loads(data)print(content[‘age‘])
  • json無法轉化函數和類

pickle模組

      Pickle的問題和所有其他程式設計語言特有的序列化問題一樣,就是它只能用於Python,並且可能不同版本的Python彼此都不相容,因此,只能用Pickle儲存那些不重要的資料,不能成功地還原序列化也沒關係。

import pickledef foo():    print(‘ok‘)#寫入檔案data = pickle.dumps(foo)f = open(‘text‘,‘wb‘)f.write(data)f.close()#讀取檔案f = open(‘text‘,‘rb‘)data = f.read()content = pickle.loads(data)content()#Can‘t get attribute ‘foo‘ on <module ‘__main__‘ from ‘C:/Users/LG/PycharmProjects/mystuff/March/day23/json_module.py‘>
  • 注意:寫入模式必須為wb、rb
  • 讀取檔案是報錯是由於找不到函數記憶體位址,所以如果想要讀取時,函數必須在記憶體位址。
dump & load 方法

1. dump

import jsondic = {‘age‘:‘28‘}f = open(‘text‘,‘w‘)json.dump(dic,f)f.close()
  • dump將進行轉化與寫入的過程

2. load

import jsonf = open(‘text‘,‘r‘)data = json.load(f)print(data[‘age‘])f.close()
  • load將進行轉化與讀取的過程

Python基礎文法 - json & pickle

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.