概述
Python3中我們利用內置模塊
json
解碼和編碼
JSON對象
,JSON(JavaScript Object Notation)是指定 RFC 7159(廢棄了RFC 4627)和 ECMA-404是一種輕量級數據交換格式,受 JavaScript對象文字語法的啟發 (雖然它不是JavaScript 1的嚴格子集)。下面為Python對象–>JSON對象的對照關系表。
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
dumps編碼
我們利用
dumps
將Python對象編碼為
JSON對象
,當然
dumps
只完成了序列化為str,而
dump
必須傳文件描述符,將序列化的str保存到文件中,它們的函數定義為
dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
編碼字典
import
json
D
=
{
'one'
:
1
,
'two'
:
2
,
'three'
:
3
}
J
=
json
.
dumps
(
D
)
print
(
J
)
示例結果:
{"one": 1, "two": 2, "three": 3}
編碼列表
import
json
L
=
[
1
,
'Python '
,
{
'one'
:
1
,
'two'
:
2
,
'three'
:
3
}
,
''
]
J
=
json
.
dumps
(
L
)
print
(
J
)
示例結果:
[1, "Python ", {"one": 1, "two": 2, "three": 3}, ""]
編碼
import
json
S
=
'Python'
J
=
json
.
dumps
(
S
)
print
(
J
)
示例結果:
"Python"
格式化輸出JSON
import
json
L
=
[
1
,
'Python '
,
{
'one'
:
1
,
'two'
:
2
,
'three'
:
3
}
,
True
]
J
=
json
.
dumps
(
L
,
sort_keys
=
True
,
indent
=
4
)
print
(
J
)
示例結果:
[
1,
"Python ",
{
"one": 1,
"three": 3,
"two": 2
},
true
]
loads解碼
我們利用
loads
用于解碼
JSON對象
。解碼結果即與之對應的
Python對象
類型。當然
loads
只完成了反序列化,
load
只接收文件描述符,完成讀取文件和反序列化。它們的函數定義為
loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
比如我們用來解碼上個示例的數據
import
json
jsondata
=
'''
[
1,
"Python ",
{
"one": 1,
"three": 3,
"two": 2
},
true
]
'''
J
=
json
.
loads
(
jsondata
)
print
(
type
(
J
)
)
print
(
J
)
示例結果:
[1, 'Python ', {'one': 1, 'three': 3, 'two': 2}, True]
可以看到我們成功對上個例子中的JSON對象進行了解碼,并且最終的解碼結果為Python列表對象類型,符合Python對象-JSON對象對照表的結果。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
