Python 語言來編碼和解碼 JSON 物件

2022-08-05 12:12:16 字數 2908 閱讀 4340

json函式:

json.dumps: python標準庫中的json模組,整合了將資料序列化處理的功能. 將 python 物件編碼成 json 字串

語法:

json.dumps(obj, skipkeys=false, ensure_ascii=true, check_circular=true, allow_nan=true, cls=none,indent=none, separators=none, encoding="

utf-8

", default=none,sort_keys=false, **kw)

常用引數演示:

1

#!/usr/bin/python

2import

json

34 jsondata = '';

56 text =json.loads(jsondata)

7print text

執行結果:

這樣的格式一般都不優美,當資料很多的時候,看得就不是很直觀方便,現在用乙個引數來對json進行資料格式化輸出

>>> import

json

>>> print json.dumps(, sort_keys=true, indent=4, separators=('

,', ': '

))

python 預設支援的資料型別向 json 型別的轉化對照表:

python

json

dict

object

list, tuple

array

str, unicode

string

int, long, float

number

true

true

false

false

none

null

如果序列化的目標資料中存在序列化不支援的資料型別,如decimal.decimal或者datetime資料型別時,會拋異常typeerror: *** is not json serializable,可以通過自定義處理來擴充套件

1

import json 2

from

decimal

import decimal 3

4 chart_list =}} 5

6class

decimalencoder(json.jsonencoder): 7

8 def default

(self, n): 9

ifisinstance(n, decimal):

10return

int(n)

11 #super(decimalencoder, self).default

(n)12

13 str = json.dumps(chart_list, cls=decimalencoder)

14print(str)

>>>}}

1

import json 2

from

datetime import date 3

from

datetime import datetime 4

56class

jsoncustomencoder(json.jsonencoder): 7

8 def default

(self, obj): 9

ifisinstance(obj, datetime):

10return obj.strftime('

%y-%m-%d %h:%m:%s')

11elif isinstance(obj, date):

12return obj.strftime('

%y-%m-%d')

13else:14

return json.jsonencoder.default

(self, obj)

1516 # ds = json.dumps(d, cls=jsoncustomencoder)

json.loads:將已編碼的 json 字串解碼為 python 物件

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

**演示:

1

#!/usr/bin/python

2import

json

34 jsondata = '';

56 text =json.loads(jsondata)

7print text

執行結果:

json 型別轉換到 python 的型別對照表:

json

python

object

dict

array

list

string

unicode

number (int)

int, long

number (real)

float

true

true

false

false

null

none

PYTHON編碼和解碼

從第一天接觸python就對解碼和編碼的問題很困惑,最近在學習網路資料爬蟲,又遇到了一系列的解碼和編碼問題,處理中文編碼問題真的好麻煩,這次真的需要好好填坑了。詳細內容下面的文章 python字串的編碼與解碼 encode與decode 字串在python內部的表示是unicode編碼,因此,在做編...

Python的編碼和解碼

春節剛過,今天正式上班。首先在這裡給大家拜個晚年,祝大家在新年裡萬事如意,新春快樂。今天我們來說乙個比較老的話題,關於python的編碼和解碼的問題。首先簡單的來說,編碼就是把人類熟悉的語言轉化成計算機可以識別的語言,即0 1狀態位。而解碼則剛好相反,就是把計算機 能夠識別的 0 1 轉化 類熟悉的...

python 編碼解碼

一種編碼想要轉成另一種編碼,需要先解碼成萬國碼 unicode,然後再從unicode轉成其他編碼。例如gbk格式想要轉成utf 8,需要先按照 gbk 的格式 decode 成 unicode,再從 unicode 格式 encode 成utf 8 python3預設使用utf 8編碼,故不用宣告...