json函數(shù)python jsonschema python

python 怎么處理json

json.dumps()

創(chuàng)新互聯(lián)建站成立于2013年,我們提供高端網(wǎng)站建設(shè)公司成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、全網(wǎng)營(yíng)銷推廣、小程序設(shè)計(jì)、微信公眾號(hào)開發(fā)、成都網(wǎng)站推廣服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為宣傳片制作企業(yè)提供源源不斷的流量和訂單咨詢。

該函數(shù)可以將簡(jiǎn)單數(shù)據(jù)類型(int\float\string\tuple\list\dict\unicode)轉(zhuǎn)換成JSON格式,樣例代碼如下:

import json

src_data = {"name":"Tacey","age":13,"sex":"male","interst":("Programing","Reading")}

#print repr(src_data)

print json.dumps(src_data)

輸出如下:

{'interst':('Programing','Reading'),'age':23,'name':'Tacey','sex':'male'}

{"interst":["programing","Reading"],"age":23,"name":"Tacey","sex":mal"}

2、json.loads()

該函數(shù)可以將JSON數(shù)據(jù)轉(zhuǎn)換成Python的簡(jiǎn)單數(shù)據(jù)類型,接著上面的代碼:

json_data = json.dumps(src_data)

print json.loads(json_data)["name"]

輸出結(jié)果:

Tacey

python中json處理

python中json文件處理涉及的四個(gè)函數(shù)json.loads()、json.dumps()、json.load()、json.dump()。

1)json.dumps()

將一個(gè)Python數(shù)據(jù)類型dict進(jìn)行json格式的編碼(字典-字符串)

eg:

age_dict = {'age1':'12', 'age2':'15'}

json_info = json.dumps(age_dict)

print("json_info = {}".format(json_info))

print("json_info type = {}".format(type(json_info)))

2)json.loads()

將json格式數(shù)據(jù)轉(zhuǎn)換為dict(字符串-字典)

json_age ='{"age1": "12", "age2": "15"}'

dict_age = json.loads(json_info)

print("json_age = {}".format(json_age))

print("dict_age type = {}".format(str(type(dict_age))))

3)json.load()

讀取文件,將里json格式字符串轉(zhuǎn)化為dict

with open(test.json, 'r') as file:

contents = json.load(file)

print(contents)

4)json.dump()

將dict類型轉(zhuǎn)換為json格式字符串,存入文件

number = [1, 2, 3, 5]

file = 'number.json'

with open(file?, 'w') as file:

json.dump(number, file)

python json快速解析命令

json.dumps 用于將 Python 對(duì)象編碼成 JSON 字符串。

json.loads 用于解碼 JSON 數(shù)據(jù)。該函數(shù)返回 Python 字段的數(shù)據(jù)類型。

demjson.encode() 函數(shù)用于將 Python 對(duì)象編碼成 JSON 字符串。

demjson.decode() 函數(shù)解碼 JSON 數(shù)據(jù)。該函數(shù)返回 Python 字段的數(shù)據(jù)類型。

1、以下實(shí)例將數(shù)組編碼為 JSON 格式數(shù)據(jù):

#!/usr/bin/python

import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

json = json.dumps(data)

print json

2、以下實(shí)例展示了Python 如何解碼 JSON 對(duì)象:

#!/usr/bin/python

import json

jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

text = json.loads(jsonData)

print text

【Python】淺談python中的json

一 前言 ?

最近一直在做開發(fā)相關(guān)的工作--基于Django的web 平臺(tái),其中需要從model層傳輸數(shù)據(jù)到view 層做數(shù)據(jù)展示或者做業(yè)務(wù)邏輯處理。我們采用通用的Json格式--Json(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和程序解析。

二 認(rèn)識(shí)Json

2.1 Json 結(jié)構(gòu)

常見的Json格式為 “名稱/值”對(duì)的集合,其中 值可以是對(duì)象,列表,字典,字符串等等。比如

backup_data?=?{"back_to_host":?"dbbk0",

"ip_address":?"10.10.20.3",

"host_name":?"rac4",

"port":?3306}

2.2 使用Json

Python的Json模塊序列化與反序列化的過程分別是 編碼和解碼。這兩個(gè)過程涉及到兩組不同的函數(shù)

編碼 把一個(gè)Python對(duì)象編碼轉(zhuǎn)換成Json字符串,json.dumps(data)/json.dump(data,file_handler)

解碼 把Json格式字符串解碼轉(zhuǎn)換成Python對(duì)象,json.loads(data)/json.load(file_handler)

在python中要使用Json模塊做相關(guān)操作,必須先導(dǎo)入:

import Json

2.3 主要函數(shù)

編碼函數(shù)主要有 json.dumps(data)/json.dump(data,file_handler)

json.dumps()的參數(shù)是將python對(duì)象轉(zhuǎn)換為字符串,如使用json.dumps序列化的對(duì)象json_dumps=json.dumps({'a':1, 'b':2}) ,json_dumps='{"b": 2, "a": 1}'

json.dump 是將內(nèi)置類型序列化為json對(duì)象后寫入文件。

解碼函數(shù)主要由json.loads(data)/json.load(file_handler) ?

json.loads的參數(shù)是內(nèi)存對(duì)象,把Json格式字符串解碼轉(zhuǎn)換成Python對(duì)象,json_loads=json.loads(d_json) ?#{ b": 2, "a": 1},使用load重新反序列化為dict

json.load()的參數(shù)針對(duì)文件句柄,比如本地有一個(gè)文件/tmp/test.json ?json_load=json.load(open('/tmp/test.json'))

具體案例參考如下:

In?[3]:?data={"back_to_host":?"rac1",

...:?"ip_address":?"10.215.20.3",

...:?"host_name":?"rac3",

...:?"port":?3306}

In?[7]:?json_str=json.dumps(data)

In?[8]:?print json_str

{"ip_address":?"10.215.20.3",?"back_to_host":?"rac1",?"host_name":?"rac3",?"port":?3306}

In?[9]:?json_loads=json.load(json_str)

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

AttributeError Traceback?(most recent?call?last)

ipython-input-9-180506f16431?in?module()

----?1 json_loads=json.load(json_str)

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.pyc?in?load(fp,?encoding,?cls,?object_hook,?parse_float,?parse_int,?parse_constant,?object_pairs_hook,?**kw)

284

285?""

注意 從上面的報(bào)錯(cuò)信息來看 json.loads 傳參是字符串類型,并不是文件句柄,沒有 read()屬性。

In?[10]:?json_loads=json.loads(json_str)

In?[11]:?print json_loads

{u'back_to_host':?u'rac1',?u'ip_address':?u'10.215.20.3',?u'host_name':?u'rac3',?u'port':?3306}

In?[12]:?type(json_loads)

Out[12]:?dict

In?[13]:?type(json_str)

Out[13]:?str

利用dump 將數(shù)據(jù)寫入 dump.json

In?[17]:?with open('/tmp/dump.json','w')?as f:

...:?json.dump(json_str,f)

...:

yangyiDBA:~?yangyi$ cat /tmp/dump.json

"{\"ip_address\": \"10.10.20.3\", \"back_to_host\": \"rac1\", \"host_name\": \"rac3\", \"port\": 3306}"

yangyiDBA:~?yangyi$

利用json.load 將dump.sjon的數(shù)據(jù)讀出來并賦值給 data?

In?[18]:?with open('/tmp/dump.json','r')?as f:

...:?data=json.load(f)

...:

In?[19]:?print data

{"ip_address":?"10.10.20.3",?"back_to_host":?"rac1",?"host_name":?"rac3",?"port":?3306}

三 小結(jié)

本文算是一篇學(xué)習(xí)筆記,主要對(duì)比了json.loads/json.load ?, json.dumps/ json.dump 的使用差異 ,方便以后更好的使用json 。

以上為本次分享內(nèi)容,感謝觀看。

網(wǎng)站標(biāo)題:json函數(shù)python jsonschema python
本文來源:http://muchs.cn/article12/dosppgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)頁(yè)設(shè)計(jì)公司面包屑導(dǎo)航、外貿(mào)建站

廣告

聲明:本網(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)

搜索引擎優(yōu)化