溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

python中json指的是什么

發(fā)布時(shí)間:2020-09-08 14:56:00 來(lái)源:億速云 閱讀:402 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了python中json指的是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

什么是json:

JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫(xiě)。同時(shí)也易于機(jī)器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類(lèi)似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。

JSON建構(gòu)于兩種結(jié)構(gòu):“名稱(chēng)/值”對(duì)的集合(A collection of name/value pairs)。不同的語(yǔ)言中,它被理解為對(duì)象(object),紀(jì)錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)。

值的有序列表(An ordered list of values)。在大部分語(yǔ)言中,它被理解為數(shù)組(array)。

這些都是常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)。事實(shí)上大部分現(xiàn)代計(jì)算機(jī)語(yǔ)言都以某種形式支持它們。這使得一種數(shù)據(jù)格式在同樣基于這些結(jié)構(gòu)的編程語(yǔ)言之間交換成為可能。

Python JSON模塊

Python2.6開(kāi)始加入了JSON模塊,無(wú)需另外下載,Python的Json模塊序列化與反序列化的過(guò)程分別是 encoding和 decoding。encoding-把一個(gè)Python對(duì)象編碼轉(zhuǎn)換成Json字符串;decoding-把Json格式字符串解碼轉(zhuǎn)換成Python對(duì)象。要使用json模塊必須先導(dǎo)入:

import json

簡(jiǎn)單數(shù)據(jù)類(lèi)型的處理

Python JSON模塊可以直接處理簡(jiǎn)單數(shù)據(jù)類(lèi)型(string、unicode、int、float、list、tuple、dict)。 json.dumps()方法返回一個(gè)str對(duì)象,編碼過(guò)程中會(huì)存在從python原始類(lèi)型向json類(lèi)型的轉(zhuǎn)化過(guò)程,具體的轉(zhuǎn)化對(duì)照如下:

json.dumps方法提供了很多好用的參數(shù)可供選擇,比較常用的有sort_keys(對(duì)dict對(duì)象進(jìn)行排序,我們知道默認(rèn)dict是無(wú)序存放的)、separators,indent等參數(shù),dumps方法的定義為:

json.dump(obj, fp, 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)

使用簡(jiǎn)單的json.dumps方法對(duì)簡(jiǎn)單數(shù)據(jù)類(lèi)型進(jìn)行編碼,例如:

obj = [[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)}] 
encodedjson = json.dumps(obj) 
print 'the original list:\n',obj 
print 'length of obj is:',len(repr(obj))
print 'repr(obj),replace whiteblank with *:\n', repr(obj).replace(' ','*') 
print 'json encoded,replace whiteblank with *:\n',encodedjson.replace(' ','*')

輸出:(Python默認(rèn)的item separator是‘, '(不是','),所以list無(wú)論是轉(zhuǎn)化成字符串還是json格式,成員之間都是有空格隔開(kāi)的)

the original list: 
[[1, 2, 3], 123, 123.123, 'abc', {'key2': (4, 5, 6), 'key1': (1, 2, 3)}] 
length of obj is: 72
repr(obj),replace whiteblank with *: 
[[1,*2,*3],*123,*123.123,*'abc',*{'key2':*(4,*5,*6),*'key1':*(1,*2,*3)}] 
json encoded,replace whiteblank with *: 
[[1,*2,*3],*123,*123.123,*"abc",*{"key2":*[4,*5,*6],*"key1":*[1,*2,*3]}] 
<type 'list'>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python中json指的是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問(wèn)題就找億速云,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI