以下是我做的对于python中模块的demo
Python 3.3.2 (v3.3.2:d047928ae3f6,May 16 2013,00:03:43) [MSC v.1600 32, >>> ================================ RESTART ================================
>>>JSON(JavaScript Object Notation)是一种轻量级的数据交换
格式。易于人阅读和编写,同时也易于机器解析和生成。
在python中,json模块提供的dumps()方法可以对简单的数据进行编码:
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> json
obj </span>= [[<span style="color: #800000;">'</span><span style="color: #800000;">a</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">b</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">c</span><span style="color: #800000;">'</span>],1,3,4,<span style="color: #800000;">'</span><span style="color: #800000;">good</span><span style="color: #800000;">'</span>,<span style="color: #800000;">'</span><span style="color: #800000;">boy</span><span style="color: #800000;">'</span>,(88,42,<span style="color: #800000;">'</span><span style="color: #800000;">hongten</span><span style="color: #800000;">'</span>),{<span style="color: #800000;">'</span><span style="color: #800000;">name</span><span style="color: #800000;">'</span> : <span style="color: #800000;">'</span><span style="color: #800000;">hongten</span><span style="color: #800000;">'</span><span style="color: #000000;">}]
encodedjson </span>=<span style="color: #000000;"> json.dumps(obj)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(repr(obj))
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(encodedjson)
</span><span style="color: #008000;">#</span><span style="color: #008000;">输出:</span>
<span style="color: #008000;">#</span><span style="color: #008000;">[['a','b','c'],'good','boy','hongten'),{'name': 'hongten'}]</span>
<span style="color: #008000;">#</span><span style="color: #008000;">[["a","b","c"],"good","boy",[88,"hongten"],{"name": "hongten"}]</span>
<span style="color: #000000;">
objA =<span style="color: #000000;"> [True,False,None]
encodedjsonA =<span style="color: #000000;"> json.dumps(objA)
<span style="color: #0000ff;">print<span style="color: #000000;">(repr(objA))
<span style="color: #0000ff;">print<span style="color: #000000;">(encodedjsonA)
</span><span style="color: #008000;">#</span><span style="color: #008000;">输出:</span>
<span style="color: #008000;">#</span><span style="color: #008000;">[True,None]</span>
<span style="color: #008000;">#</span><span style="color: #008000;">[true,false,null]</span>
<span style="color: #000000;">
在json的编码过程中,会存在从python原始类型向json类型的转换过程,具体的转换
如下:
python </span>--><span style="color: #000000;"> json
dict object
list,tuple array
str,unicode string
int,long,float number
True true
False false
None null
json转换为python数据类型:
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> json
testB </span>= <span style="color: #800000;">'</span><span style="color: #800000;">hongten</span><span style="color: #800000;">'</span><span style="color: #000000;">
dump_test </span>=<span style="color: #000000;"> json.dumps(testB)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(testB)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(dump_test)
load_test </span>=<span style="color: #000000;"> json.loads(dump_test)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(load_test)
</span><span style="color: #008000;">#</span><span style="color: #008000;">输出:</span>
<span style="color: #008000;">#</span><span style="color: #008000;">hongten</span>
<span style="color: #008000;">#</span><span style="color: #008000;">"hongten"</span>
<span style="color: #008000;">#</span><span style="color: #008000;">hongten</span>
<span style="color: #000000;">
而json转换为python类型的时候,调用的是json.loads()方法,按照如下规则转换的:
json </span>--><span style="color: #000000;"> python
object dict
array list
string str
number(int) int
number(real) float
true True
false False
null None
排序功能使得存储的数据更加有利于观察,也使得对json输出的对象进行比较:
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> json
data1 </span>= {<span style="color: #800000;">'</span><span style="color: #800000;">b</span><span style="color: #800000;">'</span>:789,<span style="color: #800000;">'</span><span style="color: #800000;">c</span><span style="color: #800000;">'</span>:456,<span style="color: #800000;">'</span><span style="color: #800000;">a</span><span style="color: #800000;">'</span>:123<span style="color: #000000;">}
data2 </span>= {<span style="color: #800000;">'</span><span style="color: #800000;">a</span><span style="color: #800000;">'</span>:123,<span style="color: #800000;">'</span><span style="color: #800000;">b</span><span style="color: #800000;">'</span>:789,<span style="color: #800000;">'</span><span style="color: #800000;">c</span><span style="color: #800000;">'</span>:456<span style="color: #000000;">}
d1 </span>= json.dumps(data1,sort_keys=<span style="color: #000000;">True)
d2 </span>=<span style="color: #000000;"> json.dumps(data2)
d3 </span>= json.dumps(data2,sort_keys=<span style="color: #000000;">True)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(d1)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(d2)
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(d3)
</span><span style="color: #0000ff;">print</span>(d1==<span style="color: #000000;">d2)
</span><span style="color: #0000ff;">print</span>(d1==<span style="color: #000000;">d3)
</span><span style="color: #008000;">#</span><span style="color: #008000;">输出:</span>
<span style="color: #008000;">#</span><span style="color: #008000;">{"a": 123,"b": 789,"c": 456}</span>
<span style="color: #008000;">#</span><span style="color: #008000;">{"a": 123,"c": 456,"b": 789}</span>
<span style="color: #008000;">#</span><span style="color: #008000;">{"a": 123,"c": 456}</span>
<span style="color: #008000;">#</span><span style="color: #008000;">False</span>
<span style="color: #008000;">#</span><span style="color: #008000;">True</span>