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進行資料格式化輸出
>>> importjson
>>> 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,可以通過自定義處理來擴充套件
1import 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)
>>>}}
1import 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編碼,故不用宣告...