成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

22文件IO_json_MessagePack-創(chuàng)新互聯(lián)

json、MessagePack

成都創(chuàng)新互聯(lián)專注于常山企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。常山網(wǎng)站建設(shè)公司,為常山等地區(qū)提供建站服務(wù)。全流程按需制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

目錄

json:...1

json的數(shù)據(jù)類型:...1

python與json:...3

json模塊:...4

MessagePack:...5

json:

java script object notation,js對(duì)象標(biāo)記,是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于ECMAScript(w3c制定的JS規(guī)范)的一個(gè)子集,采用完全獨(dú)立于編程語言的文本格式來存儲(chǔ)和表示數(shù)據(jù);

ECMAScript是標(biāo)準(zhǔn),json是實(shí)現(xiàn)的產(chǎn)品,另ES5、ES6是js產(chǎn)品;

注:

AJAX,async javascript xml,xml逐步被json取代,AJAX用于前后端傳輸數(shù)據(jù),AJAX是一種在無需重新加載整個(gè)網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù);

chrome中的v8引擎(開天辟地的大事);

nodejs,前后端均可用;

http://www.w3school.com.cn/index.html?? #web教程

json的數(shù)據(jù)類型:

value值:雙引號(hào)引起來的字符串,數(shù)值、true、false、null、對(duì)象、數(shù)組,這些都是值;

22文件IO_json_MessagePack

string字符串:由雙引號(hào)包圍起來的任意字符的組合,可以有轉(zhuǎn)義字符;

22文件IO_json_MessagePack

number數(shù)值:有正負(fù)、有整數(shù)、浮點(diǎn)數(shù);

22文件IO_json_MessagePack

object對(duì)象:

無序的鍵值對(duì)的集合;

格式:{string1:value1,...stringn:valuen},使用{};

key必須是一個(gè)字符串(而python-dict的key可以為number),需要雙引號(hào)包圍這個(gè)字符串;

value可以是任意合法的值;

22文件IO_json_MessagePack

array數(shù)組:有序的值的集合;

格式:[val1,...valn],使用[];

22文件IO_json_MessagePack

例:

test.json

{

"person": [

{

"name": "tom",

"age": 18

},

{

"name": "jerry",

"age": 16

}?? #按嚴(yán)格定義,此處}后不能有逗號(hào),但有些環(huán)境會(huì)自動(dòng)把逗號(hào)去掉

],

"total": 2

}

test2.json

a?? #單個(gè)值也是json

注:

https://www.bejson.com/zhuanyi/?? #json壓縮轉(zhuǎn)義

{"person":[{"name":"tom","age":18},{"name":"jerry","age":16}],"total":2}

python與json:

python支持少量?jī)?nèi)建數(shù)據(jù)類型到j(luò)son類型的轉(zhuǎn)換;

Python類型

Json類型

True

True

False

False

None

Null

str

string

int

integer

float

float

list

array

dict

object

json模塊:

常用方法:

json.dumps(),在內(nèi)存中操作,py object-->json;

json.loads(),在內(nèi)存中操作,json-->py object;

json.dump(),將json編碼序列化存入文件,py object-->file;

json.load(),從文件讀取數(shù)據(jù),將json編碼反序列化,file-->py object;

序列化牽涉到到字符操作、字節(jié)操作、編碼操作,查看dumps源碼;

json是字符編碼;

中文,要注意一個(gè)原則,用什么編碼寫的用什么編碼打開;

一般json編碼的數(shù)據(jù)很少落地,數(shù)據(jù)都是通過網(wǎng)絡(luò)傳輸,傳輸?shù)臅r(shí)候,要考慮壓縮它;

本質(zhì)上來說,它就是個(gè)文本,是個(gè)字符串;

json很簡(jiǎn)單,幾乎所有語言編程都支持json,應(yīng)用范圍十分廣泛;

例:

import json

d = {'name':'tom','age':18,'interest':['music','movie'],'test':True,'test2':None}

j = json.dumps(d)

print(j)

d1 = json.loads(j)

print(d1)

注:

運(yùn)行結(jié)果:

{"name": "tom", "age": 18, "interest": ["music", "movie"], "test": true, "test2": null}

{'name': 'tom', 'age': 18, 'interest': ['music', 'movie'], 'test': True, 'test2': None}

例:

In [6]: class AA:

...:???? pass

...:

In [7]: json.dumps(AA())?? #不可序列化

---------------------------------------------------------------------------

TypeError????????????

……

TypeError: <__main__.AA object at 0x7f8cf9f84978> is not JSON serializable

In [8]: class AA:

...:???? def ser(self):

...:???????? return 'AA'

...:????

In [9]: json.dumps(AA().ser())??#序列化方法,方法要自己實(shí)現(xiàn),把要返回的值收集好

Out[9]: '"AA"'

MessagePack:

第三方庫;

是一個(gè)基于二進(jìn)制,高效的對(duì)象序列化類庫,可用于跨語言通訊;

它可以像json那樣 ,在許多語言之間交換結(jié)構(gòu)對(duì)象,但它比json更快速也更輕巧;

支持python、ruby、java、c/c++等眾多語言,宣稱比google protocol buffers還要快4倍;

兼容json和pickle;

https://msgpack.org/

22文件IO_json_MessagePack

注:

27bytes-->18bytes

82,A7,C3等均為十六進(jìn)制,跳過ascii(0-127);

]$ pip install msgpack-python

Collecting msgpack-python

Downloading https://mirrors.aliyun.com/pypi/packages/8a/20/6eca772d1a5830336f84aca1d8198e5a3f4715cd1c7fc36d3cc7f7185091/msgpack-python-0.5.6.tar.gz (138kB)

……

常用方法:

import msgpack

msgpack.packb(),同msgpack.dumps(),序列化對(duì)象,dumps是用來兼容json和pickle;

msgpack.unpackb(),同msgpack.loads(),反序列化對(duì)象,loads是用來兼容json和pickle;

msgpack.pack(),同msgpack.dump(),序列化對(duì)象保存到文件對(duì)象,用dump來兼容;

msgpack.unpack(),同msgpack.load(),反序列化對(duì)象保存到文件對(duì)象,用load來兼容;

msgpack簡(jiǎn)單易用,高效壓縮,支持語言豐富,用它序列化是一種很好的選擇;

例:

import msgpack

import json

js = '{"person":[{"name":"tom","age":18},{"name":"jerry","age":16}],"total":2}'

d = json.loads(js)

print(type(d))

print(d)

print()

msg = msgpack.dumps(d)

print(type(msg))

print(len(msg))

print(msg)

print()

bts = msgpack.loads(msg,encoding='utf-8')

print(type(bts))

print(bts)

注:

運(yùn)行結(jié)果:

<class 'dict'>

{'person': [{'name': 'tom', 'age': 18}, {'name': 'jerry', 'age': 16}], 'total': 2}

<class 'bytes'>

48

b'\x82\xa6person\x92\x82\xa4name\xa3tom\xa3age\x12\x82\xa4name\xa5jerry\xa3age\x10\xa5total\x02'

<class 'dict'>

{'person': [{'name': 'tom', 'age': 18}, {'name': 'jerry', 'age': 16}], 'total': 2}

長(zhǎng)度print(len(msg))與msgpack.org中Try的結(jié)果對(duì)比:

22文件IO_json_MessagePack

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享文章:22文件IO_json_MessagePack-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article46/jeseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、移動(dòng)網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷推廣、企業(yè)建站營(yíng)銷型網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
津市市| 浙江省| 东港市| 周口市| 芒康县| 桦甸市| 乌海市| 长宁区| 浮山县| 巴楚县| 祁东县| 桐城市| 双江| 察雅县| 安化县| 新营市| 军事| 隆昌县| 光泽县| 玉溪市| 新绛县| 墨竹工卡县| 都匀市| 东阿县| 山西省| 伊宁县| 通化县| 高唐县| 铅山县| 博白县| 安龙县| 揭西县| 余庆县| 璧山县| 象州县| 龙岩市| 郑州市| 安庆市| 黄浦区| 前郭尔| 彩票|