1. 程式人生 > >python對json的操作總結(一)

python對json的操作總結(一)

IV 序列化 web print with open 運行 IT 交換 編程語言

json

概念:json是一種輕量級數據交換格式。

如果我們要在不同的編程語言之間傳遞對象,就必須把對象序列化為標準格式,比如XML,但更好的方法是序列化為JSON,因為JSON表示出來就是一個字符串,可以被所有語言讀取,也可以方便地存儲到磁盤或者通過網絡傳輸。JSON不僅是標準格式,並且比XML更快,而且可以直接在Web頁面中讀取,非常方便。

格式:一個無序的‘名稱’/‘值’集合。{名稱1/值,名稱2/值……}。

說明:你可能會想起這種格式在哪見過,沒錯。在python中字典也有著類似的可以key:value結構。但是不能混為一談。

  • JSON 的 key 只能是字符串,Python 的 dict 可以是任何可 hash 對象
  • JSON 的 key 可以是有序的
  • JSON 的 key 可以重復
  • JSON 的值只能是字符串、浮點數、布爾值或者 null,或者它們所構成的數組或者對象。

編碼--序列化:

  • dumps:把數據類型轉換成字符串
  • dump:把數據類型轉換成字符串並存儲在文件中

解碼--反序列化:

  • loads:把字符串轉換成數據類型
  • load:把文件打開從數據類型轉換成字符串

說明:在程序運行的過程中,所有的變量都是在內存中。一旦程序結束,變量也會消失。

   所以,我們把變量從內存中變成可存儲或傳輸的過程稱為序列化。

反過來,把變量內容從序列化的對象重新讀到內存裏稱之為反序列化。

1、dumps:將字典轉為字符串

In [100]: d=dict(name=xjm)

In [101]: a=json.dumps(d)

In [102]: a
Out[102]: {"name": "xjm"}

In [103]: type(a)
Out[103]: str

2、dump:寫入json文件中

In [105]: with open(Desktop/j.txt,w) as f:
     ...:     a=json.dump(d,f)
     ...:     print
(文件寫入完成……) ...: 文件寫入完成……

3、loads:讀取json文件

In [114]: d=json.loads(a)

In [115]: d
Out[115]: {name: xjm}

4、load:在文件中讀取json文件

In [120]: with open(j.txt,rb) as f:
     ...:     a=json.load(f)
     ...:

In [121]: a
Out[121]: {name: xjm}

python對json的操作總結(一)