中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

python中的json簡單介紹-創(chuàng)新互聯(lián)

這篇文章主要講解了“python中的json簡單介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python中的json簡單介紹”吧!

創(chuàng)新互聯(lián)公司是一家專業(yè)提供邵東企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、做網(wǎng)站、H5場景定制、小程序制作等業(yè)務(wù)。10年已為邵東眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。

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

二 認識Json
  2.1 Json 結(jié)構(gòu)
   常見的Json格式為 “名稱/值”對的集合,其中 值可以是對象,列表,字典,字符串等等。比如

  1. backup_data = {"back_to_host": "dbbk0",

  2.                         "ip_address": "10.10.20.3",

  3.                         "host_name": "rac4",

  4.                         "port": 3306}

  2.2 使用Json
  Python的Json模塊序列化與反序列化的過程分別是 編碼和解碼。這兩個過程涉及到兩組不同的函數(shù)
  編碼 把一個Python對象編碼轉(zhuǎn)換成Json字符串,json.dumps(data)/json.dump(data,file_handler)
  解碼 把Json格式字符串解碼轉(zhuǎn)換成Python對象,json.loads(data)/json.load(file_handler)
  在python中要使用Json模塊做相關(guān)操作,必須先導(dǎo)入:

  1. import Json 

  2.3 主要函數(shù)
  編碼函數(shù)主要有 json.dumps(data)/json.dump(data,file_handler)
   json.dumps()的參數(shù)是將python對象轉(zhuǎn)換為字符串,如使用json.dumps序列化的對象json_dumps=json.dumps({'a':1, 'b':2}) ,json_dumps='{"b": 2, "a": 1}'
   json.dump 是將內(nèi)置類型序列化為json對象后寫入文件。
 解碼函數(shù)主要由json.loads(data)/json.load(file_handler)  
    json.loads的參數(shù)是內(nèi)存對象,把Json格式字符串解碼轉(zhuǎn)換成Python對象,json_loads=json.loads(d_json)  #{ b": 2, "a": 1},使用load重新反序列化為dict
    json.load()的參數(shù)針對文件句柄,比如本地有一個文件/tmp/test.json  json_load=json.load(open('/tmp/test.json'))

具體案例參考如下:

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

  2.    ...: "ip_address": "10.215.20.3",

  3.    ...: "host_name": "rac3",

  4.    ...: "port": 3306}

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

  6. In [8]: print json_str

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

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

  9. ---------------------------------------------------------------------------

  10. AttributeError                            Traceback (most recent call last)

  11. <ipython-input-9-180506f16431> in <module>()

  12. ----> 1 json_loads=json.load(json_str)

  13. /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)

  14.     284

  15.     285 ""

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

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

  2. In [11]: print json_loads

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

  4. In [12]: type(json_loads)

  5. Out[12]: dict

  6. In [13]: type(json_str)

  7. Out[13]: str

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

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

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

  3.     ...:

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

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

  6. yangyiDBA:~ yangyi$

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

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

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

  3.     ...:

  4. In [19]: print data

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

感謝各位的閱讀,以上就是“python中的json簡單介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對python中的json簡單介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

網(wǎng)站名稱:python中的json簡單介紹-創(chuàng)新互聯(lián)
文章路徑:http://www.rwnh.cn/article32/ccicpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、企業(yè)建站、移動網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)網(wǎng)站策劃、網(wǎng)站導(dǎo)航

廣告

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

小程序開發(fā)
合江县| 兴安县| 大渡口区| 密山市| 正镶白旗| 绥芬河市| 岑溪市| 银川市| 靖宇县| 乌拉特后旗| 竹北市| 阿拉善盟| 水城县| 昌图县| 景宁| 大方县| 静乐县| 章丘市| 泸西县| 会泽县| 法库县| 大荔县| 万年县| 博客| 天峻县| 垦利县| 五峰| 安义县| 大关县| 遂川县| 正定县| 阿拉善右旗| 东乌珠穆沁旗| 噶尔县| 乐昌市| 白河县| 伊金霍洛旗| 灵寿县| 陆良县| 清原| 承德市|