国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 詳解Python使用simplejson模塊解析JSON的方法

詳解Python使用simplejson模塊解析JSON的方法

2020-08-18 09:21gexiaobaoHelloWorld Python

這篇文章主要介紹了Python使用simplejson模塊解析JSON的方法,實例代碼基于Pyhton2.x版本,文中最后還附了關于simplejson模塊的一些性能放面的討論,需要的朋友可以參考下

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

2,Json的格式
2.1,對象:

{name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.jfrwli.cn"} 
{ 屬性 : 值 , 屬性 : 值 , 屬性 : 值 } 

2.2,數組:
是有順序的值的集合。一個數組開始于"[",結束于"]",值之間用","分隔。

[ 
{name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.jfrwli.cn"}, {name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.jfrwli.cn"}, 
{name:"Peggy",email:"peggy@gmail.com",homepage:"http://www.jfrwli.cn"} 
] 

另,值可以是字符串、數字、true、false、null,也可以是對象或數組。這些結構都能嵌套。

3,Json的導入導出
這里的write/dump的含義是將Json對象輸入到一個python_object中,如果python_object是文件,則dump到文件中;如果是對象,則dump到內存中。這是序列化。

3.1,讀取Json文件

import simplejson as json 
f = file('table.json') 
source = f.read() 
target = json.JSONDecoder().decode(source) 
print target 

import simplejson as json 
jsonobject = json.load(file('table.json')) 
print jsonobject 

3.2,顯示Json文件
為了顯示Json格式好看,原來的Json文件:

[admin@r42h06016.xy2.aliyun.com]$python readJson.py 
[{'Query': 'desc zt1;', 'Message': '{"DescibeTableWithPartSpec": "false", "GetTableMetaString":"{\"tableName\":\"zt1\",\"owner\":\"1365937150772213\",\"createTime\":1346218114,\"lastModifiedTime\":0,\"columns\":[{\"name\":\"a\",\"type\":\"string\"},{\"name\":\"b\",\"type\":\"string\"}],\"partitionKeys\":[{\"name\":\"pt\",\"type\":\"string\"}]}"}', 'QueryID': '', 'Result': 'OK'}] 

執行文件:

import simplejson as json 
jsonobject = json.load(file('table.json')) 
print json.dumps(jsonobject,sort_keys=True,indent=4) 

顯示:

[admin@r42h06016.xy2.aliyun.com]$python readJson.py 
[ 
  { 
    "Message": "{"DescibeTableWithPartSpec": "false", "GetTableMetaString":"{\"tableName\":\"zt1\",\"owner\":\"1365937150772213\",\"createTime\":1346218114,\"lastModifiedTime\":0,\"columns\":[{\"name\":\"a\",\"type\":\"string\"},{\"name\":\"b\",\"type\":\"string\"}],\"partitionKeys\":[{\"name\":\"pt\",\"type\":\"string\"}]}"}", 
    "Query": "desc zt1;", 
    "QueryID": "", 
    "Result": "OK" 
  } 
] 

3.3,json模塊示例:

import json 
# Converting Python to JSON 
json_object = json.write( python_object ) 
# Converting JSON to Python 
python_object = json.read( json_object ) 

3.4,simplejson模塊 示例:

import simplejson 
# Converting Python to JSON 
json_object = simplejson.dumps( python_object ) 
# Converting JSON to Python 
python_object = simplejson.loads( json_object ) 

其中的json_object也可以是文件名比如file(“tmp/table.json”)

4,Json數據的解析
假設對于data.json文件如下:

 

復制代碼 代碼如下:

 

{'isSuccess': True, 'errorMsg': '', 'total': 1, 'data': [{'isOnline': True, 'idc': '杭州德勝機房', 'assetsNum': 'B50070100007003', 'responsibilityPerson': '張之誠', 'deviceModel': 'PowerEdge 1950', 'serviceTag': '729HH2X', 'ip': '172.16.20.163', 'hostname': 'hzshterm1.alibaba.com', 'manageIp': '172.31.58.223', 'cabinet': 'H05', 'buyTime': '2009-06-29', 'useState': '使用中', 'memoryInfo': {'amount': 4, 'size': 8192}, 'cpuInfo': {'coreNum': 8, 'l2CacheSize': 6144, 'amount': 2, 'model': 'Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz', 'masterFrequency': 1995}, 'cabinetPositionNum': '', 'outGuaranteeTime': '', 'logicSite': '中文站'}]} 
 
 
首先導入該文件,建立Json對象,并查看類型,已經是dict類型了。
 
#test.py 
import simplejson as json 
ddata = json.loads(file("data.json")) 
print ddata 
print type(ddata)#<type 'dict'> 

其次,我們以讀字典中key 為”data”對應的鍵值

>>> ddata['data']  //查看字典的方法!

>>>type(ddata['data']) 
<type 'list'> 

發現ddata[‘data']是一個列表,列表就要用序號來查詢

>>> ddata['data'][0]     //查看列表的方法!

>>> type(ddata['data'][0]) 
<type 'dict'> 

ddata[‘data']列表的0號元素是個字典。。
好,那我們查查key為idc的鍵值是多少

>>> ddata['data'][0]['idc']     //查看字典的方法!

>>> ddata['data'][0]['idc']     //查看字典的方法! 
'杭州德勝機房' 
>>> print ddata['data'][0]['idc'] 
杭州德勝機房  

5.一些性能討論

簡單測試了一下,如果用JSON,也就是python2.6以上自帶的json處理庫,效率還算可以:
1K的數據,2.9GHz的CPU,單核下每秒能dump:36898次。大約是pyamf的5倍。但數據量較大,約為pyamf的1.67倍(1101/656)。

start_time: 1370747463.77
loop_num: 36898
end_time:  1370747464.78

 
再看看simplejson,沒有安裝C擴展的情況下:

詳解Python使用simplejson模塊解析JSON的方法

simplejson,沒有安裝C擴展,跑出的結果讓我驚訝:

start_time: 1370748132.87
loop_num: 1361
end_time:  1370748133.88

效率如此之低下。
 
下面是測試代碼:

#! /usr/bin/env python 
#coding=utf-8 
 
import time 
import json 
 
test_data = { 
  'baihe': { 
    'name': unicode('百合', 'utf-8'),    
    'say': unicode('清新,淡雅,花香', 'utf-8'),    
    'grow_time': 0.5,     
    'fruit_time': 0.5,    
    'super_time': 0.5,    
    'total_time': 1,   
    'buy':{'gold':2, } ,    
    'harvest_fruit': 1,   
    'harvest_super': 1,   
    'sale': 1,      
    'level_need': 0,   
    'experience' : 2,   
    'exp_fruit': 1,    
    'exp_super': 1,    
    'used': True, 
  }, 
  '1':{ 
    'interval' : 0.3,  
    'probability' : { 
      '98': {'chips' : (5, 25), }, 
      '2' : {'gem' : (1,1), }, 
    }, 
  }, 
  '2':{ 
    'unlock' : {'chips':1000, 'FC':10,}, 
    'interval' : 12,  
    'probability' : { 
      '70': {'chips' : (120, 250), }, 
      '20': {'gem' : (1,1), }, 
      '10': {'gem' : (2,2), }, 
    }, 
  }, 
  'one':{ 
    '10,5' :{'id':'m01', 'Y':1, 'msg':u'在罐子里發現了一個銀幣!',}, 
    '3,7' :{'id':'m02', 'Y':10,'msg':u'發現了十個銀幣!好大一筆錢!',}, 
    '15,5' :{'id':'m03', 'Y':2, 'msg':u'一只老鼠跑了過去',}, 
    '7,4' :{'id':'m04', 'Y':4, 'msg':u'發現了四個生銹的銀幣……',}, 
    '2,12' :{'id':'m05', 'Y':6, 'msg':u'六個閃亮的銀幣!',}, 
  },   
   
} 
 
start_time = time.time() 
print "start_time:", start_time 
 
j = 1 
while True: 
  j += 1 
  a = json.dumps(test_data) 
  data_length = len(a) 
  end_time = time.time() 
  if end_time - start_time >= 1 : 
    break 
print "loop_num:", j 
print "end_time: ",end_time 
print data_length ,a 

 
總結:python自帶的json,性能可以接受。simplejson,如果沒有C擴展加速,效率極其低下。

 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久操色 | 欧美精品一区视频 | 成人免费视频网 | 久久不射电影网 | 精品久久久久久亚洲综合网 | 黄网免费看| 国产欧美日韩综合精品一区二区 | 久久久久久久久久一区二区 | 91精品国产人妻国产毛片在线 | 成人午夜精品久久久久久久3d | 一级黄色小视频 | 久久国产精品一区 | 亚洲欧美激情精品一区二区 | 中文字幕一区二区三区久久 | 国产乱码精品1区2区3区 | 国产精品久久精品 | 黄色国产一级片 | 人成免费在线视频 | 国产欧美日韩综合精品一区二区 | 日韩电影免费在线观看 | 久久久免费视频观看 | 久久爱综合 | 日本不卡一区二区三区在线观看 | 性视频网站免费 | 国产一区二区成人 | 亚洲视频在线免费观看 | 一区二区中文 | 成人午夜免费视频 | 欧美在线视频网站 | 免费在线观看一区二区三区 | 亚洲精品久久久久久动漫 | 国产成人精品一区二区三区四区 | 在线一级毛片 | 超碰97国产精品人人cao | 国产99久久精品 | 成年人激情视频 | 日韩婷婷| 色综合久久88色综合天天 | 精品国产一区二区三区高潮视 | 日韩av资源网 | 午夜网|